MySQL 提供了灵活的控制通用查询日志和慢查询日志的输出目的地。如果日志是启用的,可能的目的地有日志文件、表,也可以都配置
1 在服务器启动时控制
log_output
系统变量用于控制日志的输出目的地。设置这个变量本身不启用日志,你必须单独启用日志
- 如果
log_output
在启动时没有指定,则默认输出目的地是FILE
log_output
在启动时指定,它的值是列表(用逗号分割),可能的值有FILE
、TABLE
、NONE
general_log
系统变量控制是否开启通用查询日志, general_log_file
系统变量控制通用查询日志文件的名称
通用查询日志的相关变量的前缀是:general_log
slow_query_log
系统变量控制是否开启慢查询日志, slow_query_log_file
系统变量控制慢查询日志文件的名称
慢查询日志的相关变量的前缀是:slow_query_log
慢日志还有一个相关系统变量:long_query_time,指定超过多长时间被认为是慢查询
2 在运行时控制
在运行时启动日志文件或日志表相关的系统变量有
-
log_output
控制输出目的地通常查询日志如果输出到文件则文件名称默认是:
host_name
.log,如果输出到表则表名称是:mysql.general_log
表慢日志查询日志如果输出到文件则文件名称默认是:
host_name
-slow.log,如果输出到表则表名称是:mysql.slow_log
表 -
general_log
、slow_query_log
控制是否开启查询日志或慢日志 -
general_log_file
、slow_query_log_file
控制通用查询日志文件的名称或慢查询日志文件的名称 -
sql_log_off
对当前会话启用或禁用通用查询日志(在开启通用日志查询前提下)鸡肋,无用变量
3 参考资料
官网: https://dev.mysql.com/doc/refman/8.0/en/log-destinations.html
通用日志: https://dev.mysql.com/doc/refman/8.0/en/query-log.html
慢日志: https://dev.mysql.com/doc/refman/8.0/en/slow-query-log.html
通用日志:我写的参考文章:《5.4.3 The General Query Log.md》
慢日志:我写的参考文章:《5.4.5 The Slow Query Log.md》
传送门: 保姆式Spring5源码解析
欢迎与作者一起交流技术和工作生活