最常用、最可靠的方式是直接登录 MySQL 后执行 SHOW VARIABLES 查看所有运行时参数;配置分启动配置文件(如 /etc/my.cnf)和动态变量两类,命令查到的是实际生效值而非配置文件“愿望值”。

直接登录 MySQL 后用 SHOW VARIABLES 就能看到所有运行时参数,这是最常用、最可靠的方式。配置分两类:一类来自启动时读取的配置文件(如 /etc/my.cnf),另一类是运行中生效的动态变量,两者可能不一致——命令查到的是实际生效值,不是配置文件里写的“愿望值”。
用 SQL 命令查实时参数
进入 MySQL 命令行后执行:
-
SHOW VARIABLES;—— 查全部参数,输出较长,适合配合grep或客户端搜索 -
SHOW VARIABLES LIKE 'max_connections';—— 精确匹配单个参数,支持通配符,比如'%buffer%' -
SELECT @@global.innodb_buffer_pool_size;—— 查全局变量值,返回纯数字,方便脚本调用 -
SELECT @@session.sql_mode;—— 查当前会话级设置,有些参数(如autocommit)可按会话单独改
从配置文件看初始设定
MySQL 启动时会按顺序读取多个配置文件,优先级从高到低一般是:
/etc/my.cnf/etc/mysql/my.cnf-
~/.my.cnf(当前用户家目录) $MYSQL_HOME/my.cnf
快速定位主配置文件路径:
mysql --help | grep "Default options" -A 1或直接查看常见路径:
cat /etc/my.cnf 2>/dev/null || cat /etc/mysql/my.cnf 2>/dev/null区分 global 和 session 级别参数
不是所有参数都能在会话中修改。例如:
-
innodb_buffer_pool_size只有 global 级,必须重启或在线动态调整(5.7+ 支持部分热调) -
sort_buffer_size可设为 session 级,只影响当前连接,改完立即生效 - 用
SET GLOBAL xxx = N;修改后,仅对新连接生效;旧连接仍用原值
补充:用系统命令辅助验证
不进 MySQL 也能获取部分信息:
-
mysqladmin -u root -p variables—— 命令行直查,适合写监控脚本 -
mysqladmin -u root -p status—— 查运行状态(如 Threads_connected),和SHOW STATUS对应 -
ps aux | grep mysqld—— 看启动命令行参数,它们会覆盖配置文件中的同名项










