跨大版本(如5.7→8.0)必须逻辑备份还原,小版本(如8.0.28→8.0.33)可原地升级但需校验兼容性;须查官方Upgrade Paths、完整备份、检查弃用功能、测试环境先行。
直接升级 MySQL 版本需谨慎,不能简单替换二进制文件或执行一键安装。核心原则是:**跨大版本(如 5.7 → 8.0)必须通过逻辑备份还原,小版本(如 8.0.28 → 8.0.33)可原地升级但需严格校验兼容性。**
MySQL 官方明确不支持跨大版本就地升级(例如 5.6 直接升级到 8.0)。必须查阅MySQL 升级文档中对应版本的“Upgrade Paths”章节。常见有效路径:
无论哪种升级方式,以下步骤缺一不可:
SELECT * FROM information_schema.INNODB_SYS_TABLES WHERE NAME LIKE '%mysql%';,结合官方“Removed Features”列表排查(如 8.0 移除了 query cache、mysql_old_password 认证插件)小版本升级(如 8.0.30 → 8.0.34):停服务 → 替换二进制 → 启动时加 --upgrade=FORCE → 观察错误日志 → 运行 mysql_upgrade(8.0.16+ 已自动集成,无需手动调用)
大版本升级(如 5.7 → 8.0):停写 → mysqldump 全库导出(注意添加 --set-gtid-purged=OFF 若未启用 GTID)→ 卸载旧版 → 安装新版 → 初始化数据目录 → 启动空实例 → 导入 SQL → 手动校验系统表与用户权限(mysql.user 结构已变)

启动成功不等于升级完成,必须验证:
--default-auth=mysql_native_password)!includedir 路径是否仍有效)升级不是一次性操作,而是“备份-验证-切换-回滚预案”闭环。跳过任一环节都可能导致服务中断或数据异常。不复杂但容易忽略。