我想仅针对单个数据库打开MySQL的常规查询日志。默认情况下,它会记录发送到所有数据库的所有语句,从而在具有许多数据库的服务器上生成大量日志文件。
是否可以只记录发送到特定数据库的语句?
答案 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