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

MySQL的general log用于记录所有SQL操作,适合排查问题或审计,但默认是关闭的,因为开启后对性能有一定影响。
查看当前general log状态
登录MySQL后执行以下命令:
SHOW VARIABLES LIKE 'general_log';SHOW VARIABLES LIKE 'general_log_file';
如果general_log值为OFF,说明未启用;general_log_file显示日志文件路径。
临时启用general log(重启失效)
可以直接在会话中动态开启:
SET GLOBAL general_log = 'ON';此时日志会写入到默认文件或表中(取决于
log_output设置)。设置日志输出方式
MySQL支持将general log写入文件或数据库表,查看当前输出方式:
SHOW VARIABLES LIKE 'log_output';常见值:
FILE、TABLE或两者都选FILE,TABLE。如需修改:
PHP Apache和MySQL 网页开发初步
本书全面介绍PHP脚本语言和MySOL数据库这两种目前最流行的开源软件,主要包括PHP和MySQL基本概念、PHP扩展与应用库、日期和时间功能、PHP数据对象扩展、PHP的mysqli扩展、MySQL 5的存储例程、解发器和视图等。本书帮助读者学习PHP编程语言和MySQL数据库服务器的最佳实践,了解如何创建数据库驱动的动态Web应用程序。
385 查看详情
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 = ONgeneral_log_file = /var/log/mysql/general.loglog_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的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/726106.html
微信扫一扫
支付宝扫一扫