乘风原创程序

  • MySQL中的日志类型(二)-General query log
  • 2020/6/21 0:00:47
  • 简介

    General query log记录客户端的连接和断开,以及从客户端发来的每一个SQL语句。

    日志内容格式

    General query log可以记录在文件中,也可以记录在表中,格式如下:
    在文件中会记录时间、线程ID、命令类型以及执行的语句
    示例如下:
    MySQL中的日志类型(二)-General query log
    当日志记录在表中时,还会记录账号信息,示例如下:
    MySQL中的日志类型(二)-General query log

    记录时间

    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的值为多少,当开启日志时(或者刷新日志文件时),都会在日志文件中写入一个启动的消息。启动信息示例如下:
    MySQL中的日志类型(二)-General query log