首页/数据/数据库速查/参数生效与持久化(SET GLOBAL / SET PERSIST / my.cnf)
性能与调优57 条

参数生效与持久化(SET GLOBAL / SET PERSIST / my.cnf)

三种改法三种命运:SET GLOBAL 重启即失、SET PERSIST 持久到 mysqld-auto.cnf、my.cnf 需要重启(动态参数也要 reload 才生效)。

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

参数三种改法是什么

MySQL 参数有三种落地方式,命运完全不同:SET GLOBAL 立即对新连接生效但重启即失;SET PERSIST 立即生效并写入 mysqld-auto.cnf,重启后仍然是新值;直接改 my.cnf 需要重启(个别动态参数可重新加载)才生效。排障时先确认参数值来自哪一层,再决定改哪里,否则会得到「改了没用」或「重启又变回去」的结果。

基本信息

动态参数SET GLOBAL / SET PERSIST 立即生效,新连接可见
静态参数如 log_bin、lower_case_table_names,必须重启
关键文件my.cnf 与 datadir 下的 mysqld-auto.cnf
查询来源performance_schema.variables_info 的 VARIABLE_SOURCE
所需权限SYSTEM_VARIABLES_ADMIN

典型使用场景

  • 临时压测调参:SET GLOBAL 试值,验证有效后再永久落盘
  • 灰度生效:SET PERSIST 避免重启,同时保证重启后不回退
  • 排查参数来源:确认实际值到底来自 my.cnf 还是自动文件
  • 上线前变更:静态参数必须规划重启窗口与回滚方案
  • 撤销错误改动:RESET PERSIST 清掉自动文件里的条目
  • 巡检一致性:批量导出 variables_info 与配置管理基线做比对

示例与查看来源

示例与查看来源
SET GLOBAL max_connections = 1000;        # 立即生效,重启丢失
SET PERSIST max_connections = 1000;       # 写入 mysqld-auto.cnf,重启仍在
RESET PERSIST max_connections;            # 撤销持久化,回到配置文件的值
SET PERSIST_ONLY max_connections = 1000;  # 只写文件不立刻生效,适合静态参数
SELECT VARIABLE_NAME, VARIABLE_VALUE, VARIABLE_SOURCE, SET_TIME
FROM performance_schema.variables_info
WHERE VARIABLE_NAME IN ('max_connections','innodb_buffer_pool_size');

三种方式对照

方式生效时机是否持久
SET GLOBAL立即,新会话可见否,重启回到配置文件值
SET PERSIST立即,新会话可见是,写入 mysqld-auto.cnf
my.cnf 修改重启或 reload 后是,需人工维护版本
SET PERSIST_ONLY重启后生效是,适合静态参数
my.cnf 与 mysqld-auto.cnf 同时存在时以自动文件优先;排障先查 variables_info 的 VARIABLE_SOURCE,别只翻 my.cnf。
静态参数改完必须重启,而重启是有业务影响的操作:改前确认从库延迟、切换预案与回滚脚本,重启后用 variables_info 核对实际生效值。
每次改完参数都建议留一条变更记录:时间、参数名、旧值、新值、操作人、验证结果。参数引起的问题常在数周后才暴露,没有记录就只能靠猜测回溯,这也是配置漂移难以收敛的主要原因。

易错点

  • 用 SET GLOBAL 调完参数就收工,实例重启后全部回退,问题复现无人知晓
  • 只改 my.cnf 却期待立即生效:动态参数也要 SET GLOBAL 或 reload 才生效
  • my.cnf 与 mysqld-auto.cnf 值冲突,只看 my.cnf 得出错误结论
  • 把静态参数当成动态参数改,反复尝试却始终不生效
  • 没有 RESET PERSIST 就回滚配置:自动文件里的旧值仍在覆盖手工修改

数据来源与参考

  • MySQL 8.0 Reference Manual: SET Syntax for Variable Assignment
  • MySQL 8.0 Reference Manual: performance_schema.variables_info

相关工具

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