MySQL会定期发布补丁程序,补丁程序的安装方法采用替换安装的方式进行。事实上,MySQL的升级方法也同样采用替换安装的方式。本篇将介绍MySQL的升级方法。
相同大版本的MySQL进行升级的方法最为简单,例如,从8.0.18升级至8.0.32,此外,也可从5.7.9之后的5.7版本直接升级至8.0的任意版本。如果需要从5.7之前的版本升级到8.0,建议读者首先将MySQL升级至5.7的最新版本,之后再升级到8.0。升级方式主要有两种,直接替换和逻辑替换,读者可以根据升级前后的不同版本,选择替换方式,避免出现兼容性问题。
注意事项:
升级之前要对MySQL进行备份,以备出现意外时可以进行恢复。
MySQL不支持降级操作,只能利用升级前的备份进行恢复。
升级准备
升级之前,读者需要仔细阅读MySQL的发行说明,了解当前使用的MySQL版本与升级的目标版本之间的差异。包括已知问题、不兼容的变更、增加或改变的功能,及重要的变化。
一个小技巧,如果读者不清楚需要升级的功能在MySQL的哪个版本里面出现,可以使用Google或者Bing进行关键字检索,例如:
site:dev.mysql.com/doc/relnotes keyring plugin
复制
使用mysql shell进行升级检查
mysql shell里面提供了一个升级检查工具“util.checkForServerUpgrade()”。该工具可以验证当前MySQL实例是否能够进行升级,它能够检查兼容性的问题和错误,支持从5.7升级至8.0,如果用户提供配置文件的路径,可以检查my.cnf或my.ini文件。mysql shell必须使用与升级目标MySQL相同的版本。关于该工具的使用请参照MySQL Shell系列——升级检查器。
直接替换方式(物理替换)
直接替换方式的升级过程如下:
停止运行中的MySQL服务器(mysqld)
备份全部的MySQL文件
启动新版本的MySQL服务器(配置文件与之前相同)
运行“mysql_upgrade”(仅适用于8.0.16之前的版本,升级至之后的版本无需运行该程序)
逻辑替换方式(备份恢复方式)
逻辑替换方式的升级过程如下:
使用“mysqldump”备份当前的MySQL数据库,例如
,mysqldump --all-databases --routines --events --add-drop-table --lock-all-tables --flush-privilege=0 > data-for-upgrade.sql
安装并初始化新版本的MySQL服务器
启动新版本MySQL服务器从备份的文件中恢复数据(由于不兼容的原因,可能会出现错误)
运行“mysql_upgrade”(仅适用于8.0.16之前的版本,升级至之后的版本无需运行该程序)
其他方式
读者可以利用MySQL的主从复制进行滚动升级,复制拓扑里面的MySQL依序升级。读者还可以在一台临时的主机上运行应用程序,以减少替换升级带来的停机影响。
以上内容是关于MySQL升级的介绍。感谢关注“MySQL解决方案工程师”
我写的关于MySQL高可用解决方案的书籍已经出版,感兴趣的读者可以通过下面的链接进行购买。