博客文章除注明转载外,均为原创。MySQL 5.7.17GA都已经出了,考虑到5.7的性能改进和很多新特性,笔者在进过前期的测试和试用后,也开始将生产环境从5.6.x升级到5.7.17了。
升级过程是将5.6.x升级到5.6.34 GA版本,再由5.6.34 GA升级到5.7.17 GA.
MySQL 升级方法通常以下两种:
1.Logical Upgrade:
利用mysqldump来直接导出sql文件,然后导入到新库中,这是最保险的方法,但是对于数据量较大的库的升级,mysqldump就会力不从心费时费力。
2.In-Place Upgrade:
直接替换掉mysql的base目录和my.cnf配置文件,利用mysql_upgrade脚本来完成系统表的升级。需要备份原有的文件,但属于物理拷贝,速度较快。
缺点的话,适合用于跨版本升级,比如mysql5.1升级到mysql5.6,mysql5.5升级到mysql5.7等。
将5.6.34升级到5.7.17以前测试的过程记录如下:
step1:必须先备份数据库xtrabackup(略)
step2:关闭5.6.34
mysql> set global innodb_fast_shutdown=0
mysql> select version();
+------------+
| version() |
+------------+
| 5.6.34-log |
+------------+
[root@dbwatcher-test-8816 ~]# /etc/init.d/mysql stop
Shutting down MySQL...[ OK ]
step3.卸载mysql 5.6.34base目录
[root@dbwatcher-test-8816 local]# ls
bin etc games include lib lib64 libexec man mysql percona-toolkit sbin share src
[root@dbwatcher-test-8816 local]# unlink mysql
[root@dbwatcher-test-8816 local] # ls
bin etc games include lib lib64 libexec man percona-toolkit sbin share src
step4.创建5.7.14软连接,修改权限,设置启动
[root@dbwatcher-test-8816 local]# ln -sv /opt/mysql/mysql-5.7.17-linux-glibc2.5-x86_64 /usr/local/mysql
`/usr/local/mysql' -> `/opt/mysql/mysql-5.7.17-linux-glibc2.5-x86_64'
[root@dbwatcher-test-8816 local]#chown -R mysql.mysql /usr/local/mysql
[