一、准备工作
1.下载mysql并解压
[root@001 ~]# 直接下载mysql文件
[root@001 ~]# tar xf mysql-5.7.19.tar.gz -C /usr/local/src
[root@001 ~]# cd !$(上次使用的目录)
[root@001 src]# cd mysql-5.7.19/
2.安装依赖包:
yum install -y gcc gcc-c++ autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake libaio libaio-devel autoconf bzr bison libtool git
3.解压并安装Boost(拷贝至/usr/local/boost目录)
tar -zxf boost_1_59_0.tar.gz
mv /tmp/boost_1_59_0 /usr/local/boost 可以后续解压
4.准备MySQL数据,日志等路径,并创建mysql用户,赋予mysql用户相关文件夹权限
mkdir -p /usr/local/mysql /data/mysqldata /usr/local/boost
useradd -M -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql /data/mysqldata
二、编译安装及配置
1.编译安装
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysqldata -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1
-DDOWNLOAD_BOOST=1 (这个是下载boost文件到/usr/local/boost下面,有时候下载失败,可以不要这个直接下载文件放在其目录下)-DWITH_BOOST=/usr/local/boost(解压boost文
件)
[root@001 mysql-5.7.19]# make -j 4 && make install
#如果出错重新运行配置,需要删除CMakeCache.txt文件,
使用命令:make clean rm -f CMakeCache.txt
2.设置权限并初始化MySQL
[root@001 mysql-5.7.19]# cd /usr/local/mysql/bin/
[root@001 bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldata
#生成一个随机密码(注意保存登录时用)
2017-09-07T23:06:19.559512Z 1 [Note] A temporary password is generated for root@localhost: mejhUlj=z4Iy #记录下来
3.修改配置文件
mv /etc/my.cnf /etc/my.cnf.bak
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
如果没有的话就在/etc下面建一个my.cnf
mysql --help |grep my.cnf
可以查看mysql启动时读取配置文件的默认目录
[root@001 bin]# vim /etc/my.cnf #修改如下内容
[client]
port=3306
socket=/tmp/mysql.sock
default-character-set=utf8
[mysqld]
user=mysql
port=3306
server-id=11
log-bin=mysql-bin
character-set-server = utf8
collation-server = utf8_general_ci
socket=/tmp/mysql.sock
datadir=/data/mysqldata
basedir = /usr/local/mysql
explicit_defaults_for_timestamp=true
lower_case_table_names=1
back_log=103
max_connections=10000
max_connect_errors=100000
table_open_cache=512
external-locking=FALSE
max_allowed_packet=32M
sort_buffer_size=2M
join_buffer_size=2M
thread_cache_size=51
query_cache_size=32M
#query_cache_limit=4M
transaction_isolation=REPEATABLE-READ
tmp_table_size=96M
max_heap_table_size=96M
[mysqld_safe]
open-files-limit=10240
log-error=/var/log/mysqld.log
pid-file=/data/mysqldata/mysqld.pid
4.配置mysql服务开机自动启动
[root@001 bin]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@001 bin]# ldconfig
[root@001 bin]# chmod 755 /etc/init.d/mysqld #增加执行权限
[root@001 bin]# chkconfig --add mysqld
[root@001 bin]# chkconfig --level 345 mysqld on #设置MySQL在345等级自动启动
5.设置环境变量
[root@001 bin]# echo "PATH=$PATH:/usr/local/mysql/bin" > /etc/profile.d/mysql.sh
[root@001 bin]# source /etc/profile
6、启动并登陆修改密码
[root@001 bin]# service mysqld start
[root@001 bin]# mysql -uroot -pfwhYu/eIz6yX #之前记录下来的密码
mysql> set password = '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye #退出并重新登陆
[root@001 bin]# mysql -uroot -p123456
---以上编译安装MySQL5.7.19已完成,并能正常使用