直接查看 MySQL 实际运行中的配置值最可靠,使用 SHOW VARIABLES 命令可查最终生效值;需重启服务并检查错误日志验证持久化效果,动态参数可用 SET GLOBAL 临时修改。

直接查看 MySQL 实际运行中的配置值,比检查 配置文件 更可靠。因为配置是否生效,取决于 MySQL 启动时是否成功加载并应用了你修改的参数。
查看当前生效的配置值
MySQL 提供了 SHOW VARIABLES 命令,用于查询正在运行的实例中实际使用的配置项。它反映的是最终生效的值,已合并了配置文件、启动参数和动态设置的影响。
- 登录 MySQL:`mysql -u root -p`
- 执行:`SHOW VARIABLES LIKE ‘max_connections’;`(替换为你要验证的参数名)
- 也可查全部:`SHOW VARIABLES;`(结果较多,建议配合 grep 过滤,如 `mysql -e “SHOW VARIABLES;” | grep max_connections`)
确认配置来源(是否来自 my.cnf)
某些参数可能被多次定义(如全局配置文件、用户配置文件、命令行参数),MySQL 会按优先级取值。用以下方式定位参数来源:
- 执行 `SELECT @@global.max_connections;` 和 `SELECT @@session.max_connections;` 区分全局 / 会话级生效值
- 运行 `mysqld –verbose –help | grep “Default options”` 查看 MySQL 实际读取的配置文件路径(如 `/etc/my.cnf`、`/etc/mysql/my.cnf`、`~/.my.cnf` 等)
- 检查对应文件中该参数是否存在、拼写是否正确、是否被注释、是否在正确的 [mysqld] 段落下
重启后验证是否持久生效
修改 my.cnf 后必须重启 mysqld 服务,否则新配置不会加载。验证步骤如下:
- 重启服务:`sudo systemctl restart mysql`(或 `mysqld`,视系统而定)
- 立即连接并执行 `SHOW VARIABLES LIKE ‘xxx’;`,确认值已更新
- 检查错误日志(如 `/var/log/mysql/error.log`)是否有警告,例如“option ignored”或“unknown variable”,说明配置语法错误或不支持该版本
动态参数可在线修改并验证
部分参数支持运行时修改(如 `innodb_buffer_pool_size` 在 5.7+ 支持动态调整),适合快速验证效果:
- 执行 `SET GLOBAL max_connections = 1000;`(注意权限和 作用域)
- 再用 `SHOW VARIABLES LIKE ‘max_connections’;` 查看是否变更
- 注意:动态设置仅对当前运行有效,重启后失效,仍需写入配置文件才能持久化
配置是否生效,关键看运行时值,而不是文件里有没有写。改完记得重启、查日志、再核对变量值,三步缺一不可。