升级 MySQL 后须多维度验证:查实际运行版本(SELECT VERSION())、验系统表与参数、跑基础功能测试、查错误日志异常。

升级 MySQL 后,不能只看服务是否启动,必须通过多维度验证确保版本、功能、数据和兼容性全部正常。核心是“查版本、跑基础、测行为、看日志”。
确认实际运行版本与预期一致
登录 MySQL 后执行:
SELECT VERSION();
注意不是 mysql --version(显示客户端版本),也不是 mysqld --version(可能仍是旧二进制)。必须连接到正在运行的实例后查 VERSION(),同时核对 SELECT @@version_compile_os, @@version_compile_machine; 确保平台信息匹配。
检查关键系统表和参数是否就绪
新版本常引入或废弃系统表、变量。例如升级到 8.0 后应验证:
– SELECT COUNT(*) FROM performance_schema.table_io_waits_summary_by_table;(确认 P_S 表结构已更新)
– SHOW VARIABLES LIKE ‘default_authentication_plugin’;(8.0 默认为 caching_sha2_password)
– SELECT plugin, type FROM mysql.plugins WHERE plugin = ‘caching_sha2_password’;(插件是否已加载)
运行最小化功能回归测试
用一个测试库快速验证常用操作不报错:
– 创建用户:CREATE USER ‘testupg’@’localhost’ IDENTIFIED BY ‘pwd123’;
– 执行窗口函数:SELECT AVG(salary) OVER(PARTITION BY dept) FROM emp LIMIT 1;(5.7+ 支持)
– 查询 JSON 字段:SELECT JSON_EXTRACT(‘{“a”:1}’, ‘$.a’);
– 尝试 DDL 原子性操作(如 8.0+ 的 ALTER TABLE …… RENAME COLUMN)
检查错误日志与慢查询有无异常提示
升级后立即查看错误日志(SHOW VARIABLES LIKE 'log_error';):
– 搜索 “deprecated”、“removed”、“incompatible” 关键字
– 留意 “Failed to load plugins” 或 “Table is marked as crashed” 类警告
– 若开启慢日志,确认 long_query_time 行为未因版本差异意外改变(如 8.0 默认值为 0,需手动设回)