MySQL 5.7.12 Compile and Install
MySQL 5.7 主要特性:
- 更好的性能:对于多核CPU、固态硬盘,有着更好的优化
- 更好的InnoDB存储引擎
- 更为健壮的复制功能
- 更好的优化器
- 原生JSON类型的支持
- 更好的地理信息服务支持:支持GeoJSON,GeoHash特性
- 新增sys库
新版 mysql 5.7.12 编译、安装以及配置注意事项:
1. 编译
1
| cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql -DMYSQL_DATADIR=/opt/mysql-data -DSYSCONFDIR=/opt/mysql/etc -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost_1_59_0 .
|
选项参数。datadir 的路径不要放在安装目录下,应该单独分开。否则,启动 mysqld 时,会报无法更新 pid 的错误。需要事先下载 boost 放在编译目录下。
2. 安装
备份数据库,卸载所有旧版本的 mysqld 及其依赖包。在 /opt/mysql/etc 下创建 my.cnf, 配置如下:
// my.cnf
1 2 3 4 5 6 7 8 9 10 11
| [mysqld] basedir = /opt/mysql datadir = /opt/mysql-data user = mysql bind-address = 127.0.0.1 port = 3306 symbolic-links = 0 socket = /var/run/mysqld/mysqld.sock // 参考php配置,php-fpm 连接 mysqld pid-file = /opt/mysql-data/mysql.pid [client] socket = /var/run/mysqld/mysqld.sock
|
添加环境变量
1
| export $PATH:/opt/mysql/bin
|
初始化 db
1
| mysqld --initialize --user=mysql
|
3. 配置
copy 自启动脚本到 /etc/init.d
1 2
| cp /opt/mysql/support-files/mysql.server /etc/init.d service mysql.server restart
|
4. 安全优化
运行安全优化脚本
1
| mysql_secure_installation
|
删除匿名用户、test数据库、禁用远程登录等。
登录mysqld,修改root密码。 初始密码,在初始化 db 时,有显示,直接copy and past 即可。
1
| alter user root@localhost identified by 'new passwd'
|
5. 还原数据库
还原数据库时,要注意,5.7以上版的mysql的user表里已经没有 password 字段,改用 authentication_string