首页/数据/数据库速查/SHOW VARIABLES 查看与核对参数

SHOW VARIABLES 查看与核对参数

查看当前生效参数(版本、字符集、缓冲池、连接上限、binlog、sql_mode),核对配置文件与运行态是否一致。

数据库速查数据更新于 2026-10-13

SHOW VARIABLES 是什么

SHOW VARIABLES 列出当前生效的参数值,分全局与会话两个维度:你可以用它核对版本、字符集、缓冲池、连接上限、binlog 与 sql_mode 等关键项,也可以对比主从实例判断配置是否漂移。要注意它显示的是运行态实际值,不一定等于配置文件里写的内容,排查来源要配合 performance_schema.variables_info。

基本信息

适用版本MySQL 5.7 / 8.0
语法SHOW [GLOBAL|SESSION] VARIABLES [LIKE '模式']
等价查询performance_schema.global_variables / session_variables
动态调整SET GLOBAL 重启失效;SET PERSIST 持久化
权限要求能连接实例的账号即可查询,修改需 SYSTEM_VARIABLES_ADMIN

典型使用场景

  • 上线后核对:确认关键参数是否按预期生效,而不是只改了配置文件
  • 主从比对:两边跑同一组 LIKE 查询,发现配置漂移
  • 字符集排查:确认客户端、连接、结果、库表各层字符集是否一致
  • 调参前后对照:记录调整前的值,出现回退时能快速定位
  • 生成基线:定期导出关键参数形成快照,供审计与版本比对
  • 定位来源:从 variables_info 看出参数来自 my.cnf 还是自动文件

常用核对

常用核对
SHOW VARIABLES LIKE 'version%';                      # 版本与编译信息
SHOW VARIABLES LIKE 'character_set_%';                # 字符集链路各层
SHOW VARIABLES LIKE 'collation_%';                    # 排序规则
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';        # 缓冲池大小
SHOW VARIABLES LIKE 'max_connections';                # 连接数上限
SHOW VARIABLES LIKE 'log_bin%';                       # binlog 相关开关
SHOW VARIABLES LIKE 'sql_mode';                       # SQL 模式
SELECT VARIABLE_NAME, VARIABLE_SOURCE, SET_TIME FROM performance_schema.variables_info WHERE VARIABLE_NAME LIKE 'max_connections%';

两种作用域对照

作用域含义改法
GLOBAL影响所有新建立的连接SET GLOBAL 或 SET PERSIST
SESSION只影响当前连接,重连即失效SET SESSION 或 SET 关键字
只读参数仅全局存在,如 innodb_buffer_pool_size修改需重启或按版本支持在线调整
来源字段variables_info.VARIABLE_SOURCE 标识来源区分 my.cnf、自动文件与默认值
SET PERSIST 的优先级高于 my.cnf,排查参数来源别漏掉 mysqld-auto.cnf 与 RESET PERSIST。
SHOW VARIABLES 不带 GLOBAL 或 SESSION 时默认显示会话值,某些参数会话与全局不同,核对时显式写清作用域避免误判。
有些参数只在特定版本存在,例如 innodb_redo_log_capacity 需 8.0.30 及以上;跨版本写巡检脚本时要对缺失变量做容错,不能把查不到当成值为 0 或已关闭。
巡检脚本可以双路核对:SHOW VARIABLES 与 performance_schema.global_variables 同时查一遍,两者不一致时先确认读取的是哪个作用域,再下结论。

易错点

  • 只看配置文件就认为参数已生效,实际被 mysqld-auto.cnf 或会话设置覆盖
  • 核对时不写作用域,读到的会话值与全局值不同导致误判
  • 把只读参数当动态参数反复 SET,报错后误以为是权限问题
  • 主从实例参数不一致(如 sql_mode、字符集)导致从库执行 SQL 报错
  • 改了参数不记录改动前值,出问题无法快速回退

数据来源与参考

  • MySQL 8.0 Reference Manual: Server System Variables

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌