MySQL 5.5升级到MySQL 5.6 

3,163 views

升级之前,最好把这台服务器在负载中卸下来,升级完成后重新加入负载。具体操作看是用什么负载均衡软件。

1. 阅读MySQL 5.6 release notes 和change list 以便查看MySQL 5.6 的新特性和兼容性
根据change list 更改相应的配置和SQL语法
1) Configuration Changes
2) SQL Changes
3) Server Changes

https://dev.mysql.com/doc/refman/5.6/en/upgrading-from-previous-series.html

2. 备份MySQL 5.5 所有数据用mysqldump

mysqldump -uroot –all-databases –routines –events > all.sql

3.暂停数据库,如果有主从关系,那么很重要的一点是要记录下从的同步节点的Binlog和pos

4.更改MySQL 5.5 二进制程序目录名字,以便升级失败快速回退

mv mysql5.5 mysql5.5_back

5. 解压MySQL 5.6 二进制程序到对应的目录

tar -zxvf mysql-advanced-5.6.14-linux2.6-x86_64.tar.gz

mv mysql-advanced-5.6.14-linux2.6-x86_64  ~/mysql5.6

6.如果MySQL 5.5 配置文件和MySQL 5.6配置文件不兼容,修改对应的配置项,例如:

[mysqld]
innodb_file_per_table=0

7.把刚刚mv掉的mysql5.5_back里的data复制到mysql5.6下的data里

cp -R ~/mysql5.5/data ~/mysql5.6/

8. 把5.5的my.cnf复制到5.6对应的目录下

9.启动5.6的mysql

~/mysql5.6/bin/mysqld_safe –default-files=~/mysql5.6/my.cnf

10. 运行mysql_upgrade 修复5.5到5.6之间的不兼容情况,记得运行的时候带上用户和密码,用户和密码是5.5的时候的用户密码就行。因为5.5的数据都拷到5.6了

~/mysql5.6/bin/mysql_upgrade -uwww -p

11. upgrade后,如果正常应该是输出各种OK, 最后进入命令行界面 mysql -uwww -p

检查版本的输出5.6, 看看slave的状态是不是正确的,不正确重新做一遍slave的配置就行。

PS:

其中会遇到很多情况,基本上会是配置问题,配置文件里新的配置项冲突,这个第一点讲过了需要更新到最新的,如果有疏漏,可以不使用后台的命令行启动mysql直观的看输出,或者看下err.log文件里面的错误日志,基本上都能说明清楚了,对应改过来基本没问题,这个步骤线上操作过好几台服务器,基本没问题。

 

技术QQ群:221073018

Leave a Reply

Your email address will not be published.