当前位置: 首页 > 面试题库 >

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

呼延俊良
2023-03-14
问题内容

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

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

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


问题答案:

我最终找到了解决方法。通过在运行时使用以下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'


 类似资料:
  • 问题内容: 如何启用MySQL功能,该功能记录从客户端收到的每个SQL查询语句以及该查询语句提交的时间?我可以在phpmyadmin或NaviCat中做到吗?如何分析日志? 问题答案: 首先, 请记住,此日志文件在繁忙的服务器上可能会变得非常大。 对于mysql <5.1.29: 要启用查询日志,把这个在节 另外,从MySQL控制台启用它 见http://dev.mysql.com/doc/ref

  • 本文向大家介绍MySQL慢查询日志的作用和开启,包括了MySQL慢查询日志的作用和开启的使用技巧和注意事项,需要的朋友参考一下 前言 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10S以上的语句。默认

  • 主要内容:启动和设置通用查询日志,查看通用查询日志,停止通用查询日志,删除通用查询日志通用查询日志(General Query Log)用来记录用户的所有操作,包括启动和关闭 MySQL 服务、更新语句和查询语句等。 默认情况下,通用查询日志功能是关闭的。可以通过以下命令查看通用查询日志是否开启,命令如下: 从结果可以看出,通用查询日志是关闭的,general_log_file 变量指定了通用查询日志文件所在的位置。 启动和设置通用查询日志 在 MySQL 中,可以通过在 MySQ

  • 本文向大家介绍MySQL中开启和使用通用查询日志的实例教程,包括了MySQL中开启和使用通用查询日志的实例教程的使用技巧和注意事项,需要的朋友参考一下 开启通用查询日志 因为为了性能考虑,一般通用查询日志general log不会开启。slow log可以定位一些有性能问题的sql,而general log会记录所有的SQL。 mysql5.0版本,如果要开启slow log、general lo

  • 我正在使用JDBC尝试从以下表中选择: 我想检查是否存在具有特定login和PASSWORDMD5值的行,如下所示: 但当我调用时,我会得到以下错误: com.mysql.jdbc.exceptions.jdbc4.mysqlsyntaxerrorexception:sun.reflect.nativeConstructorAccessorImpl.newInstance(nativeConstr

  • 问题内容: 我进行了很多搜索,但找不到有用的答案: 我想通过用户给我一个开始和结束日期来列出用户定义的时间段的总计。从开始日期到开始日期之间的每次总计应该相加,并在每一天添加1天。因此最后一行给出了从开始到结束日期的总计。示例:-给定期间=开始2013-01-01,结束= 2013-01-31 所以我有一个查询谁计算所有天: 我有一个查询谁每天计算总数 现在将这两者结合起来很难得到我的最终结果。