简介
General query log记录客户端的连接和断开,以及从客户端发来的每一个SQL语句。
日志内容格式
General query log可以记录在文件中,也可以记录在表中,格式如下:
在文件中会记录时间、线程ID、命令类型以及执行的语句
示例如下:
当日志记录在表中时,还会记录账号信息,示例如下:
记录时间
General Query Log在数据库接收到客户端发来的语句时进行记录。这意味着General Query Log的顺序可能和实际语句执行的顺序是不同的。
设置方法
General Query Log可以在数据库启动时开启,也可以在数据库运行时开启。
在数据库启动前:
设置--general_log来开启日志
设置--log_output=[FILE,TABLE,NONE]来确定日志存放的位置。
设置--general_log_file=file_name来确定日志文件的名称和目录。
在数据库运行时:
修改全局变量来修改日志设置
修改general_log、log_output、general_log_file的值来修改相关设置,例如:
SET GLOBAL general_log=1
SET GLOBAL log_output='FILE';
此外,可以通过设置sql_log_off的值为ON或OFF来禁用或启用当前连接的General query log。
其他
数据库会根据log_output的值将日志写入到文件或表中。
但是不论log_output的值为多少,当开启日志时(或者刷新日志文件时),都会在日志文件中写入一个启动的消息。启动信息示例如下: