本篇是在安装5.6.22基础上做了更新,以适应5.7.22-boost版本的安装,它们在安装后的配置步骤上稍有不同
目标系统CentOS7.6 64位
源码包位置/usr/local/src/mysql-boost-5.7.22.tar.gz
以下步骤:
1、cd /usr/local/src
2、tar -zxvf mysql-boost-5.7.22.tar.gz
3、cd mysql-5.7.22
4、安装必要的编译环境
yum -y install ncurses-devel cmake gcc gcc-c++
5、创建mysql用户、组、数据目录
groupadd mysql
useradd -r -g mysql mysql
mkdir -p /home/mysql/data
chown -R mysql:mysql /home/mysql
6、预编译
cmake . -DCMAKE_INSTALL_PREFIX=/home/mysql -DMYSQL_DATADIR=/home/mysql/data -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DMYSQL_TCP_PORT=3306 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
仔细看预编译的结果提示,如果有错误,查看它给的错误日志文件内容,安装相关的依赖库
重新编译之前,要清除编译缓存,使用命令:
rm -f CMakeCache.txt
7、make & make install
8、准备配置文件
mv /etc/my.cnf /etc/my.cnf.bak
vi /etc/my.cnf
输入并保存
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
user = mysql
port = 3306
socket = /tmp/mysql.sock
datadir = /home/mysql/data
#慢查询时间 将超过1秒的视为慢查询
slow_query_log=1
slow_query_log_file=mysqld-slow.log
long_query_time=2
#fix group by problem up 5.7.9
sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#fix ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL,or READS SQL DATA ...
log-bin-trust-function-creators=1
# binlog
server-id=1
log-bin=bin_log
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
9、初始化数据库:
cd /home/mysql/
./bin/mysqld --initialize --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data
执行完毕后会生成一个临时密码, 显示在控制台信息里,类似:
A temporary password is generated for root@localhost: xxxxxxxx
先找地方记住这个密码,后续修改密码需要用到
10、启动数据库 /home/mysql/bin/mysqld_safe &
11、善后工作
export PATH=$PATH:/home/mysql/bin
set password=password("xxxxxxxx");
/home/mysql/bin/mysqld_safe &
如果是新系统,特别注意要给rc.local授执行权限:
chmod +x /etc/rc.d/rc.local
至此,大功告成!