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

时间:2011-04-01 09:12:38

标签: mysql database logging

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

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

2 个答案:

答案 0 :(得分:10)

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

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

SET SQL_LOG_OFF = 1;

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

答案 1 :(得分:6)

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

SET GLOBAL LOG := 1;  -- enable log
-- execute queries
SET GLOBAL LOG := 0;  -- disable log