1、下载boost库(MYSQL5.7及以上需要,必须安装)并解压到 /usr/local 目录下
wget https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
tar zxf boost_1_59_0.tar.gz -C /usr/local/
2、下载依赖包
yum -y install ncurses ncurses-devel perl perl-devel gcc gcc-c++ cmake make openssl-devel openssl
3、建立MYSQL用户
useradd -s /sbin/nologin mysql
4、下载MYSQL-5.7.26源码包并编译安装
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.26.tar.gz
tar zxf mysql-5.7.26.tar.gz
cd mysql-5.7.26
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost_1_59_0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_TCP_PORT=3306 \
-DWITH_READLINE=1 \
-DMYSQL_USER=mysql \
-DWITH_SSL=yes
make && make install
5、创建MYSQL数据存储目录并授权用户mysql
mkdir -p /data/mysql
chown -R mysql.mysql /data/mysql
6、编辑MYSQL主配置文件
cat >/etc/my.cnf <<EOF
[client]
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /data/mysql
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
log-error = /tmp/mysqld.log
server-id = 1
log-bin =mysql
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
EOF
7、初始化数据库(生成空密码,生成随机密码–initialize)初始化数据库,–initialize 表示默认生成一个安全的密码,–initialize-insecure 表示不生成密码
cd /usr/local/mysql/bin
./mysqld --initialize-insecure --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql
或者
./mysqld --initialize --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql
如果设置密码可以看到最后一行会出现临时密码
[Note] A temporary password is generated for root@localhost: =mrV)_16is4U
8、配置成系统服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod o+x /etc/init.d/mysqld
9、启动MYSQL服务、添加开启自启动
chown -R mysql.mysql /usr/local/mysql
service mysqld start
chkconfig --add mysqld
chkconfig mysqld on
10、创建软连接、访问数据库(也可以设置环境变量,但是如果有多个mysql版本建议用软链接)
ln -s /usr/local/mysql/bin/* /usr/bin
mysql
思考:
为什么源码包编译前大小为394MB
编译完5.2G