直接查看 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';` 查看是否变更 注意:动态设置仅对当前运行有效,重启后失效,仍需写入配置文件才能持久化 配置是否生效,关键看运行时值,而不是文件里有没有写。改完记得重启、查日志、再核对变量值,三步缺一不可。