写在前面
MySQL 5.7版本于2015年10月份左右 GA,至今已经半年多了,但自己一直没有时间来follow MySQL 5.7 新的特性,作为MySQL DBA 实在汗颜,以后会花时间来研究5.7 版本的特性并针对部分优化功能做出压力测试。本文记录安装MySQL 5.7 , (即使参考了官方的文档 ) 整个过程并非之前的版本那么顺利, 算是一个尝鲜, 供大家参考。
MySQL 5.7 安装
本文采用二进制源码包安装
获取安装包
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.12-linux-glibc2.5-x86_64.tar
wget http://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.7/mysql-5.7.12-linux-glibc2.5-x86_64.tar
解压缩
tar -xvf mysql-5.7.12-linux-glibc2.5-x86_64.tar -C /opt/
cd /opt
ls -s mysql-5.7.12-linux-glibc2.5-x86_64 mysql
mkdir -p /srv/my3306/{data,run,tmp,log}
注意 官方提示
5.7.6版本之前可以使用mysql_install_db 来初始化安装,但是5.7.6之后的版本已经废弃了该初始化方式,推荐使用-- initialize 参数完成数据库初始化的操作。
root@rac4:~# >/opt/mysql/bin/mysql_install_db --user=mysql --basedir=/opt/mysql --datadir=/srv/my3306/data/
2016-05-10 05:34:13 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2016-05-10 05:34:14 [ERROR] Child process: /opt/mysql/bin/mysqldterminated prematurely with errno= 32
2016-05-10 05:34:14 [ERROR] Failed to execute /opt/mysql/bin/mysqld --bootstrap --datadir=/srv/my3306/data --lc-messages-dir=/opt/mysql/share --lc-messages=en_US --basedir=/opt/mysql
-- server log begin --
2016-05-09T21:34:13.595439Z 0 [Warning] --bootstrap is deprecated. Please consider using --initialize instead
2016-05-09T21:34:13.596070Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000)
2016-05-09T21:34:13.596075Z 0 [Warning] Changed limits: table_open_cache: 431 (requested 2000)
-- server log end --
初始化操作
安装和配置ssl
需要提示各位的是
MySQL 认为 在5.7版本之前存在安全问题,存在比较大的隐患,如 MySQL数据库默认安装的用户密码为空,所有用户拥有对于MySQL默认安装test数据库的访问权限 。MySQL 5.7中的root用户的密码不再是空,而是在安装时随机产生一个密码,如第一张图中的红色注释.而且官方已经删除了test数据库,默认安装完后是没有test数据库的。更为重要的是,MySQL 5.7版本提供了更为简单SSL安全访问配置,并且默认连接就采用SSL的加密方式。 关于ssl 的更多知识和性能测试请移步《 MySQL的SSL 加密连接与性能开销 》
运行完命令mysql_ssl_rsa_setup后会发现datadir 目录下会多出pem结尾的文件,而这些文件就是开启SSL连接所需要的文件:
启动MySQL
root@rac4:/opt/mysql# >bin/mysqld_safe --user=mysql --datadir=/srv/my3306/data --basedir=/opt/mysql
2016-05-09T22:42:12.101739Z mysqld_safe Logging to '/srv/my3306/data/rac4.err'.
2016-05-09T22:42:12.141157Z mysqld_safe Starting mysqld daemon with databases from /srv/my3306/data
登陆数据库
小结
实际上初始化安装之后 数据库里面仅有root@'localhost' 和mysql.sys@'localhost' 两个用户,并且第一次需要重置root 密码。因为这个是第一次安装,在登陆数据库的便利性方面没有做过多研究。但是可以感受到新版本的数据库在安全性上的考量。
另外在启动的时候也遇到了 指定 --defaults-file 识别不了的问题,这个待解决。
针对这个问题 ,终于解决了,原因在于
官方 mysqld-safe 介绍
使用 . / bin/mysqld_safe - - defaults - file = / srv/my3306/my . cnf --user=mysql & 即可解决。
5.7 版本的相比于5.6 在安装过程和使用方式上存在相当大的差异,作为老司机也在坑里面好久才爬出来。看了本文之后,希望对第一次使用二进制安装的朋友有所帮助,路虽崎岖 (PS 也是我第一次手比较生),但是看官方文档和其他小伙伴对5.7 性能和功能的介绍,还是需要比较深入的探究5.7 版本特性, 多读官方文档 ,为以后在生产环境落地做预研。
MySQL 5.7版本于2015年10月份左右 GA,至今已经半年多了,但自己一直没有时间来follow MySQL 5.7 新的特性,作为MySQL DBA 实在汗颜,以后会花时间来研究5.7 版本的特性并针对部分优化功能做出压力测试。本文记录安装MySQL 5.7 , (即使参考了官方的文档 ) 整个过程并非之前的版本那么顺利, 算是一个尝鲜, 供大家参考。
MySQL 5.7 安装
本文采用二进制源码包安装
获取安装包
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.12-linux-glibc2.5-x86_64.tar
wget http://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.7/mysql-5.7.12-linux-glibc2.5-x86_64.tar
解压缩
tar -xvf mysql-5.7.12-linux-glibc2.5-x86_64.tar -C /opt/
cd /opt
ls -s mysql-5.7.12-linux-glibc2.5-x86_64 mysql
mkdir -p /srv/my3306/{data,run,tmp,log}
注意 官方提示
5.7.6版本之前可以使用mysql_install_db 来初始化安装,但是5.7.6之后的版本已经废弃了该初始化方式,推荐使用-- initialize 参数完成数据库初始化的操作。
root@rac4:~# >/opt/mysql/bin/mysql_install_db --user=mysql --basedir=/opt/mysql --datadir=/srv/my3306/data/
2016-05-10 05:34:13 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2016-05-10 05:34:14 [ERROR] Child process: /opt/mysql/bin/mysqldterminated prematurely with errno= 32
2016-05-10 05:34:14 [ERROR] Failed to execute /opt/mysql/bin/mysqld --bootstrap --datadir=/srv/my3306/data --lc-messages-dir=/opt/mysql/share --lc-messages=en_US --basedir=/opt/mysql
-- server log begin --
2016-05-09T21:34:13.595439Z 0 [Warning] --bootstrap is deprecated. Please consider using --initialize instead
2016-05-09T21:34:13.596070Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000)
2016-05-09T21:34:13.596075Z 0 [Warning] Changed limits: table_open_cache: 431 (requested 2000)
-- server log end --
初始化操作
安装和配置ssl
需要提示各位的是
MySQL 认为 在5.7版本之前存在安全问题,存在比较大的隐患,如 MySQL数据库默认安装的用户密码为空,所有用户拥有对于MySQL默认安装test数据库的访问权限 。MySQL 5.7中的root用户的密码不再是空,而是在安装时随机产生一个密码,如第一张图中的红色注释.而且官方已经删除了test数据库,默认安装完后是没有test数据库的。更为重要的是,MySQL 5.7版本提供了更为简单SSL安全访问配置,并且默认连接就采用SSL的加密方式。 关于ssl 的更多知识和性能测试请移步《 MySQL的SSL 加密连接与性能开销 》
运行完命令mysql_ssl_rsa_setup后会发现datadir 目录下会多出pem结尾的文件,而这些文件就是开启SSL连接所需要的文件:
启动MySQL
root@rac4:/opt/mysql# >bin/mysqld_safe --user=mysql --datadir=/srv/my3306/data --basedir=/opt/mysql
2016-05-09T22:42:12.101739Z mysqld_safe Logging to '/srv/my3306/data/rac4.err'.
2016-05-09T22:42:12.141157Z mysqld_safe Starting mysqld daemon with databases from /srv/my3306/data
登陆数据库
小结
实际上初始化安装之后 数据库里面仅有root@'localhost' 和mysql.sys@'localhost' 两个用户,并且第一次需要重置root 密码。因为这个是第一次安装,在登陆数据库的便利性方面没有做过多研究。但是可以感受到新版本的数据库在安全性上的考量。
另外在启动的时候也遇到了 指定 --defaults-file 识别不了的问题,这个待解决。
- root@rac4:/opt/mysql# >./bin/mysqld_safe --user=mysql --defaults-file=/srv/my3306/my.cnf &
- [1] 11326
- root@rac4:/opt/mysql# >./bin/mysqld_safe: line 541: /usr/local/mysql/data/mysqld_safe.pid: No such file or directory
- awk: (FILENAME=- FNR=1) warning: error writing standard output (Broken pipe)
- 2016-05-09T22:27:32.088016Z mysqld_safe Logging to '/usr/local/mysql/data/rac4.err'.
- touch: cannot touch `/usr/local/mysql/data/rac4.err': No such file or directory
- chmod: cannot access `/usr/local/mysql/data/rac4.err': No such file or directory
- touch: cannot touch `/usr/local/mysql/data/rac4.err': No such file or directory
- chown: cannot access `/usr/local/mysql/data/rac4.err': No such file or directory
- 2016-05-09T22:27:32.140094Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
使用 . / bin/mysqld_safe - - defaults - file = / srv/my3306/my . cnf --user=mysql & 即可解决。
5.7 版本的相比于5.6 在安装过程和使用方式上存在相当大的差异,作为老司机也在坑里面好久才爬出来。看了本文之后,希望对第一次使用二进制安装的朋友有所帮助,路虽崎岖 (PS 也是我第一次手比较生),但是看官方文档和其他小伙伴对5.7 性能和功能的介绍,还是需要比较深入的探究5.7 版本特性, 多读官方文档 ,为以后在生产环境落地做预研。