MySQL通过配置文件或启动参数控制日志级别,log_error_verbosity设1~3级错误日志详细度,general_log和slow_query_log控制通用与慢查询日志开关,long_query_time定义慢查阈值,支持运行时动态调整部分参数,修改后需重启或执行SET命令生效。

MySQL 启动时的日志级别控制主要通过配置文件或启动参数来实现,调整日志级别有助于排查问题或减少日志输出量。以下是具体的配置方法。
1. 通过配置文件设置日志级别
MySQL 的主配置文件通常是 my.cnf(Linux)或 my.ini(Windows),一般位于 /etc/my.cnf、/etc/mysql/my.cnf 或 MySQL 安装目录下。
在配置文件的 [mysqld] 段中添加或修改以下参数来控制日志行为:
-
log_error_verbosity = 1~3:设置错误日志的详细程度
• 1 = 只记录错误信息
• 2 = 记录错误和警告
• 3 = 记录错误、警告和通知(最详细) - general_log = ON/OFF:开启或关闭通用查询日志(全量SQL记录)
- general_log_file = /path/to/general.log:指定通用日志路径
- slow_query_log = ON:开启慢查询日志
- long_query_time = 2:设置慢查询阈值(单位:秒)
- log_warnings = 1(旧版本使用):控制是否记录警告信息(MySQL 8.0+ 已整合到 log_error_verbosity)
示例配置:
[mysqld] log_error = /var/log/mysql/error.log log_error_verbosity = 2 general_log = OFF slow_query_log = ON long_query_time = 2 slow_query_log_file = /var/log/mysql/slow.log
2. 通过启动命令行参数设置
如果使用命令行直接启动 MySQL(如 mysqld_safe 或 mysqld),可以在启动时传入日志相关参数:
mysqld --log-error-verbosity=2 --slow-query-log --long-query-time=1 --log-error=/var/log/mysql/error.log
这种方式适合临时调试,但建议长期配置写入配置文件。
3. 动态调整运行时日志级别(部分支持)
对于已运行的 MySQL 实例,某些日志设置可动态修改:
- SET GLOBAL general_log = ON;:开启通用日志
- SET GLOBAL slow_query_log = ON;:开启慢查询日志
- SET GLOBAL long_query_time = 1;:修改慢查询阈值(无需重启)
注意:log_error_verbosity 在 MySQL 5.7+ 支持动态设置:
SET GLOBAL log_error_verbosity = 2;
4. 查看当前日志配置
登录 MySQL 执行以下命令查看当前日志设置:
SHOW VARIABLES LIKE '%log%';
重点关注:
- log_error:错误日志路径
- log_error_verbosity:当前日志级别
- slow_query_log、general_log:慢查和通用日志状态
基本上就这些。修改配置后需重启 MySQL 或执行对应 SET 命令生效。合理设置日志级别既能保障可观测性,又避免日志过多影响性能。










