MySQL默认关闭general log以避免性能影响,可通过SHOW VARIABLES检查状态;临时开启使用SET GLOBAL general_log = 'ON',日志输出方式由log_output控制,支持FILE、TABLE或两者;永久开启需在my.cnf中配置general_log和路径并重启服务;生产环境应谨慎使用,防止日志过多影响性能。

MySQL的general log用于记录所有SQL操作,适合排查问题或审计,但默认是关闭的,因为开启后对性能有一定影响。
登录MySQL后执行以下命令:
SHOW VARIABLES LIKE 'general_log'; SHOW VARIABLES LIKE 'general_log_file';
如果general_log值为OFF,说明未启用;general_log_file显示日志文件路径。
可以直接在会话中动态开启:
SET GLOBAL general_log = 'ON'; </font><p>此时日志会写入到默认文件或表中(取决于<code>log_output</code>设置)。</p><H3>设置日志输出方式</H3><p>MySQL支持将general log写入文件或数据库表,查看当前输出方式:</p><font face="Courier New"><pre class="brush:php;toolbar:false;"> SHOW VARIABLES LIKE 'log_output';
常见值:FILE、TABLE或两者都选FILE,TABLE。
如需修改:
SET GLOBAL log_output = 'FILE'; -- 写入文件 SET GLOBAL log_output = 'TABLE'; -- 写入mysql.general_log表 SET GLOBAL log_output = 'FILE,TABLE'; -- 同时写入
编辑MySQL配置文件(通常是/etc/my.cnf或/etc/mysql/my.cnf),在[mysqld]段添加:
[mysqld] general_log = ON general_log_file = /var/log/mysql/general.log log_output = FILE
确保目录存在且MySQL有写权限。保存后重启MySQL服务生效:
sudo systemctl restart mysql
如果输出到文件,直接查看:
tail -f /var/log/mysql/general.log
如果输出到表,登录MySQL执行:
SELECT * FROM mysql.general_log ORDER BY event_time DESC LIMIT 100;
注意:生产环境慎用,长期开启可能产生大量日志,影响性能和磁盘空间。
基本上就这些,按需开启并定期清理即可。
以上就是mysql如何启用general log的详细内容,更多请关注php中文网其它相关文章!
                        
                        每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
                Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号