直接登录 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—— 看启动命令行参数,它们会覆盖配置文件中的同名项
