说明
在开发过程中,有时候遇到SQL语句错误,但由于是动态生成的SQL语句不方便排查,此时可以通过监听MySQL
的查询日志来排查。MySQL查询日志会记录所有请求操作的SQL,不论SQL语句是否正确。
查看当前配置
MySQL
中的参数general_log
用来控制开启、关闭MySQL
查询日志,参数general_log_file
用来控制查询日志的位置。所以如果你要判断MySQL
数据库是否开启了查询日志,可以使用下面命令。general_log
为ON
表示开启查询日志,OFF
表示关闭查询日志。
show variables like '%general_log%';
MySQL的查询日志支持写入文件或写入数据表两种形式,这个由参数log_output
查看MySQL的日志记录方式
show variables like 'log_output';
开启查询日志
设置动态参数开启
set global general_log = on;
查看当前配置
show variables like 'general_log';
可以看到general_log
变成了ON
,表示开启成功。
设置记录方式
上面说到,记录方式可为文件或表,默认是使用的文件,也可以配置log_output
使用保存记录到表
set global log_output='table';
查看当前配置
show variables like 'log_output';
上图中,log_output
值变成了TABLE
,则表示当前日志记录会保存到gengera_log
表中,可使用下面的查询语句查看。
select * from mysql.general_log;
关闭查询日志
设置动态参数关闭
set global general_log = off;
查看当前配置
show variables like 'general_log';
general_log
变成了OFF
,表示已经关闭。
需要注意,在日常开发中可以长时间开启日志记录,但在实际应用环境中,必须将日志记录关闭,因为会影响很大的数据库服务器性能~
标签: MySQL
文章来源:
鸿辰
版权声明:本网站可能会转载或引用其他来源的文章、图片、数据等信息。对于这些转载内容,版权归原作者所有。本站尊重原作者的劳动成果,并在可能的情况下注明来源和作者。如有任何版权问题,请及时联系,收到后将第一时间处理。