是否只能为单个数据库打开MySQL通用查询日志?

Oll*_*ass 15 mysql database logging

我想仅针对单个数据库打开MySQL的常规查询日志.默认情况下,它记录发送到所有数据库的所有语句,从而在具有许多数据库的服务器上生成大量日志文件

是否可以只记录发送到特定数据库的语句?

Ike*_*ker 10

通用查询日志是在给定服务器上执行的所有查询的全局日志,因此无法为特定模式启用或禁用它.

有一个名为" SQL_LOG_OFF禁用特定连接的常规查询日志记录" 的变量,如果您可以隔离使用要为其启用/禁用常规查询日志的模式的特定连接,则该变量可能对您有用:

SET SQL_LOG_OFF = 1;
Run Code Online (Sandbox Code Playgroud)

请注意,这仅适用于具有SUPER权限的用户,因此它可能对您没有用.

  • 这是一般查询日志的doc页面,注意没有提到为特定模式启用/禁用的功能:http://dev.mysql.com/doc/refman/5.1/en/query-log.html (2认同)

Dev*_*art 6

常规查询由LOG选项启用,它是一个全局变量,因此您无法为一个数据库设置它.但是可以减小日志大小; 禁用ini文件中服务器的日志记录,如果可能的话 - 在脚本中使用SET命令启用它(仅在您需要时).

SET GLOBAL LOG := 1;  -- enable log
-- execute queries
SET GLOBAL LOG := 0;  -- disable log
Run Code Online (Sandbox Code Playgroud)