MySQL升级后需依次验证服务状态、连接性、版本与字符集、系统表兼容性及业务功能:检查systemctl状态和mysql登录,执行SELECT VERSION()和字符集查询,运行mysql_upgrade(5.7→8.0必做),再测试SQL执行计划、慢日志及错误日志。

确认MySQL服务正常运行
升级完成后,先检查MySQL进程是否已成功启动。使用systemctl status mysql(或mysqld,取决于系统和服务名)查看服务状态,确保为active (running)。同时尝试用mysql -u root -p登录,验证基础连接是否通畅。若提示Access denied或Can't connect to local MySQL server,需排查socket路径、端口、权限或认证插件变更(如升级到8.0后默认使用caching_sha2_password)。
核对版本与字符集配置
登录后执行SELECT VERSION();确认实际运行版本与预期一致;运行SHOW VARIABLES LIKE 'character_set%';和SHOW VARIABLES LIKE 'collation%';检查字符集是否仍为utf8mb4(尤其是character_set_server和collation_server),避免因配置文件未同步导致新库/表默认使用latin1。若发现异常,及时修改my.cnf并重启服务,或临时用SET PERSIST调整(MySQL 8.0+支持)。
检查关键系统表与数据兼容性
运行mysql_upgrade(5.7及更早升级到8.0时必须执行,8.0.x小版本升级通常无需)——该命令会更新系统表结构、修复权限表,并校验用户表一致性。完成后检查输出中是否有OK提示,尤其关注mysql.user、mysql.db等核心表是否完成升级。若跳过此步直接启动8.0,可能出现权限失效或无法创建用户等问题。
验证业务功能与慢查询表现
- 抽样测试核心业务SQL:包括带JOIN、子查询、GROUP BY的语句,确认执行计划未发生意外变化(可用EXPLAIN FORMAT=TREE对比升级前后)
- 检查慢查询日志是否正常生成(slow_query_log=ON且long_query_time设置合理),观察QPS、TPS是否回落至正常水平
- 查看错误日志(mysqld.err)末尾有无ERROR或WARNING,重点关注Deprecated syntax、Plugin not loaded类提示










