MySQL版本升级

MySQL版本升级

MySQL使用过程中常因为某些bug或者新特性需求进行版本升级,生产环境一般升级有两种方法,原地升级和逻辑升级,逻辑升级就是比较纯粹的导入导出,耗时较长,最稳当。原地升级则是用新版本拉起旧版本数据后更新元数据,耗时少,可能很小概率会有问题,这里我们走一遍原地升级的流程。

Ⅰ、整体流程

停库 ---> 备份 ---> 拉起 ---> 更新

Ⅱ、上手

2.1 查看当前MySQL版本

[root@master mysql]# mysql -e "\s" |grep 'Server version' |awk '{print $3}'
5.6.39

2.2 停库&&备份

注意停库的时候慢一点,最大程度保证数据完整性(full purge and a change buffer merge before shutting down)

[root@master mysql]# mysql -e "SET GLOBAL innodb_fast_shutdown = 0;"
[root@master mysql]# /etc/init.d/mysql.server stop
Shutting down MySQL.. SUCCESS! 
[root@master mysql]# cp -r /data/mysql /data/mysql_bak

2.3 新版本启动

[root@master local]# unlink mysql
[root@master local]# ln -s mysql-5.7.23-el7-x86_64/ mysql
[root@master local]# /etc/init.d/mysql.server start
Starting MySQL.. SUCCESS!

2.4 更新元数据

这里用了-s参数(--upgrade-system-tables),表示只更新系统表(元数据表),不更新数据,数据方面高版本是兼容低版本的,具体用法参考mysql_upgrade --help
更新完记得重启一哈

[root@master local]# mysql_upgrade -s
The --upgrade-system-tables option was used, databases won't be touched.
Checking if update is needed.
Checking server version.
Running queries to upgrade MySQL server.
Upgrading the sys schema.
Upgrade process completed successfully.
Checking if update is needed.
[root@master ~]# /etc/init.d/mysql.server restart
Shutting down MySQL.... SUCCESS! 
Starting MySQL. SUCCESS! 

2.5 没关系,咱们看结果

[root@master local]# mysql -e "\s" |grep 'Server version' |awk '{print $3}'
5.7.23

Ⅲ、插两句

①可以跨大版本升级,但必须先备份,必须
②互联网公司升级方案:主从--->升级从--->主从互换--->升级原主
③降级也是用这个命令,mysql_upgrade -s,一般不降级,了解一下,小版本之间可以降级 5.7.2到5.7.1这种 ,大版本之间是不可以的

posted @ 2019-03-22 11:06  91洲际哥  阅读(9403)  评论(0编辑  收藏  举报