需先查版本并确认升级路径,再备份数据与配置,检查兼容性,按场景选停机或滚动升级,最后验证功能与性能。

确认当前 MySQL 版本和升级路径
先登录 MySQL 执行 SELECT VERSION(); 查看当前版本号,再查阅MySQL 官方升级文档,确认是否支持直接升级。例如从 5.7 升到 8.0 需经过中间版本(如先升至 5.7.30+ 再升 8.0),而 8.0.x 小版本间通常可直接升级。
备份所有数据和 配置文件
升级前必须完整备份:
- 使用 mysqldump 导出全部数据库(含 mysql 系统库):
mysqldump -u root -p --all-databases --single-transaction > full_backup.sql - 复制当前的 my.cnf(或 my.ini)配置文件,并记录自定义参数(如 innodb_buffer_pool_size、sql_mode 等)
- 保存 data 目录的完整快照(如用 rsync 或 tar 归档),尤其注意 /var/lib/mysql 路径
检查兼容性与配置变更
MySQL 8.0 起默认启用严格模式、移除旧认证插件、更改默认字符集为 utf8mb4_0900_ai_ci。需提前检查:
- 应用 SQL 是否使用已废弃语法(如
GRANT …… IDENTIFIED BY,应改用CREATE USER+GRANT) - 确认客户端驱动支持新认证方式(caching_sha2_password),必要时在配置中临时设 default_authentication_plugin=mysql_native_password
- 比对新旧版本的
sql_mode差异,避免因严格模式导致业务报错
选择升级方式并验证
推荐按场景选择:
- 小流量环境:停机升级——停止服务 → 替换二进制文件 → 运行
mysqld --upgrade→ 启动验证 - 生产环境:主从滚动升级——先升级从库,切换主从角色后再升级原主库,全程保持服务可用
- 升级后立即执行:
mysql_upgrade -u root -p(8.0.16+ 已自动集成,但建议仍检查输出日志) - 用原始备份恢复测试库,运行核心业务 SQL 验证功能与性能






























