监听并记录MySQL的查询日志

4,476次阅读
没有评论

共计 866 个字符,预计需要花费 3 分钟才能阅读完成。

说明

在开发过程中,有时候遇到 SQL 语句错误,但由于是动态生成的 SQL 语句不方便排查,此时可以通过监听 MySQL 的查询日志来排查。MySQL 查询日志会记录所有请求操作的 SQL,不论 SQL 语句是否正确。

查看当前配置

MySQL中的参数 general_log 用来控制开启、关闭 MySQL 查询日志, 参数 general_log_file 用来控制查询日志的位置。所以如果你要判断 MySQL 数据库是否开启了查询日志,可以使用下面命令。general_logON 表示开启查询日志,OFF表示关闭查询日志。

show variables like '%general_log%';

监听并记录 MySQL 的查询日志

MySQL 的查询日志支持写入文件或写入数据表两种形式,这个由参数log_output

查看 MySQL 的日志记录方式

show variables like 'log_output';

监听并记录 MySQL 的查询日志

开启查询日志

设置动态参数开启

set global general_log = on;

监听并记录 MySQL 的查询日志

查看当前配置

show variables like 'general_log';

监听并记录 MySQL 的查询日志

可以看到 general_log 变成了ON,表示开启成功。

设置记录方式

上面说到,记录方式可为文件或表,默认是使用的文件,也可以配置 log_output 使用保存记录到表

set global log_output='table';

监听并记录 MySQL 的查询日志

查看当前配置

show variables like 'log_output';

监听并记录 MySQL 的查询日志

上图中,log_output值变成了TABLE,则表示当前日志记录会保存到gengera_log 表中,可使用下面的查询语句查看。

select * from mysql.general_log;

监听并记录 MySQL 的查询日志

关闭查询日志

设置动态参数关闭

set global general_log = off;

监听并记录 MySQL 的查询日志

查看当前配置

show variables like 'general_log';

监听并记录 MySQL 的查询日志

general_log变成了OFF,表示已经关闭。

需要注意,在日常开发中可以长时间开启日志记录,但在实际应用环境中,必须将日志记录关闭,因为会影响很大的数据库服务器性能~

标签:MySQL

文章来源: 监听并记录 MySQL 的查询日志

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2021-01-27发表,共计866字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)