升级Ubuntu 16.04至18.04时如何保留现有MySQL 5.7不被升级
Ubuntu Server 16.04 升级18.04 保留MySQL 5.7 操作指南
直接执行
do-release-upgrade升级系统时,MySQL会被自动升级到5.8版本,而MySQL社区版5.8不再将分区功能作为免费特性提供,因此需要在升级前锁定MySQL相关包版本,避免自动升级。
操作步骤如下:
- 第一步:全量备份数据和配置
600GB的大数据量建议使用物理备份工具xtrabackup完成全量备份,同时单独备份/etc/mysql配置目录、/var/lib/mysql数据目录,条件允许时可先对服务器做整盘快照,避免升级异常导致数据丢失。 - 第二步:锁定MySQL 5.7相关包版本
执行以下命令标记MySQL相关包不参与自动升级:
执行完成后可运行sudo apt-mark hold mysql-server mysql-client mysql-common mysql-server-core-5.7 mysql-client-core-5.7sudo apt-mark showhold确认所有MySQL相关包都已被锁定。 - 第三步:执行系统版本升级
先将当前16.04系统的所有软件包更新到最新版本:
再执行系统大版本升级命令:sudo apt update && sudo apt upgrade -y sudo apt autoremove && sudo apt autoclean
升级过程中如果弹出配置文件替换提示,所有和MySQL相关的配置项都选择保留当前安装的本地版本。sudo do-release-upgrade - 第四步:升级后校验
系统升级完成重启后,首先执行mysql -V确认输出为5.7版本,再运行systemctl status mysql确认数据库服务运行正常,最后登录数据库验证数据完整性、分区功能可正常使用。 - 后续如果需要更新MySQL 5.7的小版本补丁,可先执行
sudo apt-mark unhold解除对应包的锁定,更新完成后再次执行hold操作锁定版本即可。
内容的提问来源于stack exchange,提问作者Fabrizio A
相关产品推荐
相关产品推荐

