Ubuntu 15.10升级至16.04.3时如何阻止MySQL Server升级?
解决Ubuntu 15.10升级到16.04.3时阻止MySQL 5.7安装的问题
你遇到的核心问题是mysql-server-5.6已经处于rc状态(包已被移除,仅残留配置文件),加上可能遗漏了对mysql-server元包的锁定,导致升级过程中系统会尝试安装16.04默认的MySQL 5.7版本。下面是具体的修复步骤:
1. 处理半安装状态的MySQL包
先解决iU状态的半安装包,修复依赖和未完成的安装流程:
sudo apt-get install -f sudo dpkg --configure -a
2. 重新安装MySQL Server 5.6
因为当前mysql-server-5.6是rc状态(已被移除),系统会判定它未安装,所以需要重新安装回5.6版本:
sudo apt-get install mysql-server-5.6 mysql-client-5.6
安装时如果提示配置密码或配置文件选择,确保和之前的设置保持一致,或选择保留现有配置。
3. 锁定所有相关MySQL包(包括元包)
之前只锁定了部分5.6相关包,但mysql-server这个元包在16.04中默认依赖5.7版本,必须一起锁定。执行以下命令完成全量锁定:
sudo apt-mark hold mysql-server mysql-server-5.6 mysql-client-5.6 mysql-common mysql-client-core-5.6 mysql-server-core-5.6
4. 验证锁定状态
确认所有需要锁定的包都已被标记:
apt-mark showhold
输出列表应包含上面所有的包名。
5. 模拟升级检查
正式升级前,先模拟升级流程,确认不会再触发MySQL 5.7的安装:
sudo apt-get upgrade -s
查看输出内容,确认没有mysql-server-5.7、mysql-client-5.7等相关包被标记为待安装。
关键注意点
rc状态的包会被系统视为“未安装”,所以即使之前锁定过,也无法阻止系统尝试安装新版本替代包;mysql-server是元包,本身不包含程序,仅依赖对应版本的服务包,16.04默认指向5.7,必须锁定它才能彻底阻止版本切换;- 升级过程中如果弹出配置文件替换提示,一定要选择保留本地当前版本(keep the local version currently installed),避免覆盖现有MySQL配置。
内容的提问来源于stack exchange,提问作者hanzo2001
相关产品推荐
相关产品推荐

