官方文档: Mysql 5.6 升级 5.7
https://dev.mysql.com/doc/refman/5.7/en/upgrade-before-you-begin.html
01备份
备份数据,包括系统数据,保证在升级过程中因为某些意外情况导致数据丢失。
比如:作者本人更改了数据库的数据地址,然后升级时没有注意升级选项,虽然升级成功,但是升级后的数据库的数据目录在原始目录,导致数据丢失
备份方式有多种,这里我们选择最简单的mysqldump方式:
mysqldump -uroot -p --all-databases > ~/mysql_all.sql
02Apt升级
不同类别的系统升级方式,安装包Deb方式、压缩包编译升级等,这里我们选择Apt源升级
更新Apt源sudo apt-get update
2. 查看当前Mysql版本
dpkg -l | grep mysql | grep ii
Mysql当前版本
3. 查看Apt源准备安装的版本
apt-cache search mysql-server
Mysql升级版本
4. 升级命令和安装命令相同
sudo apt-get install mysql-server
注意:如果你更改了配置文件参数,如果希望保留参数效果,比如:数据目录Datadir,选择N或者O,保留你自己的版本配置
Mysql升级
悲:作者这里因为选择错误,导致卸载Mysql-server、mysql-client等,从新安装了一次
Mysql升级过程
5. 升级完成后,8.0.16 之前使用mysql_upgrade检查对应任何不兼容问题,从8.0.16之后不需要手动执行
Mysql_upgrade 检查
sudo mysql_upgrade -u root -p
Mysql upgrade检查
6. 检查完成,如果没有任何问题,则表明升级成功
7. 检查其他应用连接到数据库是否影响,不同应用对不同Mysql版本参数可能不同
如:
JIRA 对 Mysql 5.6的数据库URL是:sessionVariables=storage_engine=InnoDB
JIRA 对 Mysql 5.7的数据库URL是:sessionVariables=default_storage_engine=InnoDB
03升级前的了解工作
作者建议广大同胞们,升级前最好能够大致浏览一下官方文档,能够对升级过程有一个大致的了解。
1. 默认升级路径,不支持跨版本升级
Mysql 只支持相邻版本升级,如:
5.6 升级到5.7支持,5.7.x 升级到5.7.y支持,但不支持5.5 升级到 5.7
2. Mysql 5.7 的更改
一些SQL命令可能不兼容,升级完成后,需要注意
3. Mysql 5.7 的新增
Mysql 5.7 相比 5.6 增加一些参数,提高性能等,如果在升级过程中出现新问题,可以朝新参数方向思考。
4. MySQL 5.7中添加、弃用或删除服务器和状态变量和选项
如果5.6中使用了弃用或者已经取消的变量和选项,需要更改
5. 可升级的版本5.7.x
Mysql 发布了一系列5.7版本,可以选择升级到任一5.7小版本
6. 涉及replication热备份
准备的越充分,越能做到心中有数,临危而不乱。