10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载
PDF (Ltr)- 42.0 mb
PDF (A4)- 42.1 mb
手册页(TGZ)- 266.5 kb
手册页(邮政编码)- 376.2 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

5.4.3通用查询日志

一般查询日志是关于什么的一般记录mysqld在干什么。当客户端连接或断开连接时,服务器将信息写入此日志,并记录从客户端接收到的每条SQL语句。当您怀疑客户机中有错误并希望确切地知道客户机发送给了什么时,通用查询日志可能非常有用mysqld

显示客户端连接时间的每一行还包括使用connection_type表示用于建立连接的协议。connection_type是其中之一TCP / IP(无SSL的TCP/IP连接),SSL / TLS(使用SSL建立TCP/IP连接),套接字(Unix套接字文件连接),命名管道(Windows命名管道连接),或共享内存(Windows共享内存连接)。

mysqld按照接收语句的顺序(可能与执行语句的顺序不同)将语句写入查询日志。这种日志记录顺序与二进制日志的顺序相反,后者是在执行语句之后、释放任何锁之前写入语句的。此外,查询日志可能包含只选择数据的语句,而这些语句永远不会写入二进制日志。

在复制源服务器上使用基于语句的二进制日志记录时,副本收到的语句将写入每个副本的查询日志。方法读取事件时,语句将写入源的查询日志mysqlbinlog实用程序,并将它们传递给服务器。

但是,当使用基于行的二进制日志记录时,更新是作为行更改而不是SQL语句发送的,因此这些语句永远不会写入查询日志binlog_format.当将该变量设置为时,也可能不会将给定的更新写入查询日志混合,取决于使用的语句。看到第17.2.1.1节“基于语句和基于行复制的优缺点”,以查询更多资料。

缺省情况下,通用查询日志是关闭的。若要显式指定初始通用查询日志状态,请使用——general_log [= {0 | 1}].没有参数或参数为1时,——general_log使日志。如果参数为0,该选项将禁用日志。要指定日志文件名,请使用——general_log_file =file_name.要指定日志目的地,请使用log_output系统变量(如第5.4.1节“选择通用查询日志和慢查询日志输出目的地”).

请注意

如果指定表格日志目的地,看到日志表和打开的文件太多错误

如果您没有为通用查询日志文件指定名称,则默认名称为host_name. log.服务器在数据目录中创建文件,除非指定了绝对路径名以指定不同的目录。

若要在运行时禁用或启用通用查询日志或更改日志文件名,请使用全局general_log而且general_log_file系统变量。集general_log0(或)来禁用日志或到1(或)启用。集general_log_file指定日志文件的名称。如果日志文件已经打开,则关闭该文件,然后打开新文件。

控件指定的任何目标都可以写入通用查询日志log_output系统变量。如果启用日志,服务器将打开日志文件并将启动消息写入其中。但是,对文件的进一步查询记录不会发生文件已选择日志目的地。如果目的地是没有一个,即使启用了通用日志,服务器也不会写查询。如果日志目标值不包含文件

服务器重新启动和日志刷新不会导致生成新的通用查询日志文件(尽管刷新会关闭并重新打开该文件)。要重命名文件并创建一个新文件,使用以下命令:

$ > mvhost_name. loghost_name-old.log $> mysqladmin flush-logs $> mvhost_name-old.log备份目录

在Windows上,使用重命名而不是mv

您还可以在运行时通过禁用日志重命名通用查询日志文件:

SET GLOBAL general_log = 'OFF';

在禁用日志的情况下,从外部(例如,从命令行)重命名日志文件。然后再次启用日志:

SET GLOBAL general_log = 'ON';

这种方法适用于任何平台,不需要重新启动服务器。

若要禁用或启用当前会话的常规查询日志记录,请设置会话sql_log_off变量来.(这假设通用查询日志本身是启用的。)

写入通用查询日志的语句中的密码由服务器重写,而不是以纯文本的形式出现。方法启动服务器,可以抑制常规查询日志的密码重写——log-raw选择。此选项可能用于诊断目的,以查看服务器接收到的语句的确切文本,但出于安全原因,不建议用于生产使用。另请参阅第6.1.2.3节“密码和日志记录”

密码重写的一个含义是,无法解析(例如,由于语法错误)的语句不会写入通用查询日志,因为它们无法知道是无密码的。需要记录所有语句(包括有错误的语句)的用例应该使用——log-raw选项,请记住这也会绕过密码重写。

只有当需要使用纯文本密码时,才会发生密码重写。对于语法要求密码哈希值的语句,不会发生重写。如果为这种语法错误地提供了纯文本密码,则将按给定的密码进行记录,而不进行重写。

log_timestamps系统变量控制写入一般查询日志文件(以及写入慢查询日志文件和错误日志)的消息中的时间戳的时区。它不影响写到日志表的一般查询日志和慢查询日志消息的时区,但是可以将从这些表中检索到的行从本地系统时区转换为所需的任何时区CONVERT_TZ ()或者通过设置会话time_zone系统变量。