MySQL主从升级必须先升从库再升主库,因从库无写流量影响小;主库需先切换角色再升级以规避风险,并注意跨版本兼容性及参数调整。

先升级从库,再升级主库
MySQL主从架构升级必须严格遵循“先从后主”顺序。这是因为从库不承担写请求,升级过程对业务无直接影响;而主库一旦升级失败或出现兼容性问题,可能导致整个写入链路中断。
从库升级前需确认复制状态正常
执行 SHOW SLAVE STATUS\G,重点检查以下几项:
- Slave_IO_Running 和 Slave_SQL_Running 均为 Yes
- Seconds_Behind_Master 为 0 或稳定不增长
- Retrieved_Gtid_Set 与 Executed_Gtid_Set 一致(若启用 GTID)
若复制延迟大或中断,应先修复复制,再进行升级。
主库升级前需完成主从角色切换
不能直接升级原主库。正确做法是:
- 将已升级完成且运行稳定的从库提升为新主库(执行 STOP SLAVE; RESET SLAVE ALL;,再配置为可写)
- 原主库降级为从库,指向新主库同步数据
- 验证新主库的读写、复制、监控指标均正常后,再对其执行升级操作
该步骤本质是通过一次可控的主从切换,把升级风险转移到只读节点上完成。
版本兼容性与参数调整不可忽略
跨大版本升级(如 5.7 → 8.0)时:
- 务必查阅官方 Upgrade Checklist,例如 MySQL 8.0 要求 default_authentication_plugin = caching_sha2_password,旧客户端可能连接失败
- 从库升级后,若主库版本较低,需确保其 binlog 格式(binlog_format)和事件类型兼容新从库解析能力
- 升级后首次启动时使用 --upgrade=FORCE 参数触发系统表更新(尤其 5.7→8.0)










