MySQL的全局SQL日志与慢查询日志配置(含Table和File)

网上大部分都是将日志输出到文件,而输出到general_log表和slow_log表的太难找,记录一下。

虽然日志记录到系统的专用日志表中,要比记录到文件耗费更多的系统资源,不建议生产环境下使用,但是多人开发调试时还是很实用的。

以下在MySQL8中调试通过,不兼容MySQL5.7

1、日志输出方式

执行SQL语句

-- 日志输出方式,生产环境建议FILE,开发环境可以TABLE
set global log_output='table'; 

或者,修改或增加My.ini配置文件内容

; 日志输出方式,生产环境建议使用FILE,开发环境可以使用TABLE
; log_output = 'FILE,TABLE' 
log_output = 'TABLE'

2、打开全局SQL日志开关

执行SQL语句,MySQL服务重启前一直有效,重启后将会重新加载配置文件中参数

-- 是否打开全局SQL日志 
set global general_log=on;

或者,修改或增加My.ini配置文件内容,MySQL服务重启后有效

; 是否打开全局SQL日志 
general_log=ON 

; 日志跟踪输出文件
general_log_file = "D:\db_sever\mysql\8027\data\mysql_8027_sql.log"

3、打开慢查询跟踪开关

执行SQL语句

-- 是否跟踪慢查询 
set global slow_query_log=ON;

或者,修改My.ini配置文件

; 是否跟踪慢查询 
slow_query_log=ON

慢查询跟踪其他配置

;慢查询阈值,单位微秒,当查询时间多于设定的阈值时,记录日志
long_query_time = 1000

; 未使用索引的查询也被记录到慢查询日志中(包括使用full index scan的SQL)
log_queries_not_using_indexes = ON

; 如果你想查询有多少条慢查询记录,可以使用Slow_queries系统变量
; Slow_queries=100 不在这里修改,暂未找到修改哪里

; 慢查询输出文件
slow_query_log_file="D:/db_sever/mysql/8027/data/mysql_8027_slow.log"

4、其他

两个日志表(general_log表和slow_log表),只能Truncate,不允许Delete,会报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值