mysql如何在主从架构中升级_mysql主从升级顺序说明

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

先升级从库,再升级主库

MySQL主从架构升级必须严格遵循“先从后主”顺序。这是因为从库不承担写请求,升级过程对业务无直接影响;而主库一旦升级失败或出现兼容性问题,可能导致整个写入链路中断。

从库升级前需确认复制状态正常

执行 SHOW SLAVE STATUS\G,重点检查以下几项:

  • Slave_IO_RunningSlave_SQL_Running 均为 Yes
  • Seconds_Behind_Master 为 0 或稳定不增长
  • Retrieved_Gtid_SetExecuted_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)

升级前后建议备份 mysql.system_tables 及关键配置文件。