mysql启用通用查询日志(general query log)的操作流程如下:
1、 MySQL 8.0 版本中,控制该功能的核心参数为 general_log,其默认值为 OFF,即日志功能处于禁用状态;如需捕获全部客户端请求(含连接、断开及所有 SQL 语句),必须显式启用。

2、 编辑 MySQL 主配置文件(通常为 /etc/my.cnf 或 /etc/mysql/my.cnf),在 [mysqld] 段落下添加或修改以下三行配置(仅设 general_log = ON 不足,还需指定输出方式与路径):
general_log = ON general_log_file = /var/log/mysql/general.log log_output = FILE
⚠️ 注意:若仅将原有 0 改为 1(如 general_log = 1),虽语法兼容,但缺少路径与输出目标定义,易导致日志写入失败或落至默认数据目录(如 /var/lib/mysql/hostname.log),且该路径可能无写权限。

3、 配置保存后,需执行服务重启以加载新设置:
sudo systemctl restart mysqld# 或sudo service mysql restart
重启过程中应确认服务状态正常(systemctl status mysqld),避免因路径不存在、权限不足或拼写错误引发静默启动失败。

4、 启动成功后,MySQL 将按 general_log_file 指定路径创建并写入日志文件。请确保该路径所在目录已存在,且属主为 mysql 用户(例如:sudo mkdir -p /var/log/mysql && sudo chown mysql:mysql /var/log/mysql),否则日志将无法生成,亦无明确报错提示。

5、 日志内容为明文文本,每条记录包含时间戳、线程ID、命令类型(Connect/Query/Quit等)及具体语句。例如:
2026-04-15T10:22:18.123456Z 127 Connect root@localhost on using SSL/TLS 2026-04-15T10:22:18.123789Z 127 Query SELECT VERSION()
该格式可直接通过 cat、tail -f 或 less 查看,适用于快速定位操作行为。

6、 日志文件支持手动清理;若需轮换归档,建议配合 logrotate 工具配置自动策略(如每日切割、保留7天、自动压缩)。此外,执行 FLUSH LOGS; 命令可强制关闭当前日志文件并新建一个(前提是 log_output 包含 FILE),但注意此操作对 TABLE 输出方式无效。













