一尘不染

使用JDBC启用MySQL一般查询日志

mysql

有没有一种方法可以通过JDBC启用MySQL一般查询日志记录?我通过搜索发现的最接近的内容是能够通过JDBC(http://dev.mysql.com/doc/refman/5.5/en/connector-
j-reference-configuration-properties.html)记录慢速查询的功能。也许我应该这样做并将慢查询阈值设置为0 ms?

我想以一种人类可读的格式通过MySQL记录所有查询,并希望指定应在其中写入日志文件的位置。我知道我会受到性能的影响,但是我的应用程序只有一个用户,而且非常简单,如果性能下降很明显,我会感到惊讶。我还是想尝试一下看看。

我相信我拥有的另一种选择是打开二进制日志记录,并使用mysqlbinlog将二进制日志转换为人类可读的格式,但这听起来像常规查询日志将提供一种更简单的方式来获取所需的信息。


阅读 258

收藏
2020-05-17

共1个答案

一尘不染

我最终找到了解决方法。通过在运行时使用以下SQL查询修改MySQL全局系统变量,可以通过Java启用MySQL常规查询日志记录。

SET GLOBAL log_output="FILE"
SET GLOBAL general_log_file="Path/File"
SET GLOBAL general_log='ON'

我建议在general_log_file路径中使用正斜杠。即使在Windows环境中,我也无法使用反斜杠。

我在运行时使用以下SQL查询禁用常规查询日志记录。

SET GLOBAL general_log='OFF'
2020-05-17