如何在不重启 MYSQL 服务器的情况下启用 --general-log?

How to enable --general-log without restarting the MYSQL server?

根据 mysql 文档,此标志可以动态更改。

Property    Value
Command-Line Format --general-log
System Variable general_log
Scope   Global
Dynamic Yes
SET_VAR Hint Applies    No
Type    Boolean
Default Value   OFF

但默认情况下此选项是禁用的。但是我需要启用此标志才能在不重新启动服务器的情况下查看日志。有什么方法可以不用重启服务器就可以实现呢

MySQL提供了一个系统变量general_log,指定是否启用通用查询日志。您只需要执行以下查询即可启用 GLOBAL 日志记录(也适用于所有其他客户端会话):

SET GLOBAL general_log = 'ON';

您还可以指定 log file path:

SET GLOBAL general_log_file = '/var/log/mysql/all.log';

请记住,当您重新启动服务器时,这些设置将会丢失。要使更改持久化,您必须在配置文件中进行更改。


如果要禁用常规查询日志记录,可以执行以下操作:

SET GLOBAL general_log = 'OFF'