mysql general_log日志,查看MySQL所有被执行的SQL语句

原文链接:https://blog.csdn.net/u010735147/article/details/81871560

一、介绍

  开启 general log 将所有到达MySQL Server的SQL语句记录下来。

  一般不会开启开功能,因为log的量会非常庞大。但个别情况下可能会临时的开一会儿general log以供排障使用。
相关参数一共有3:general_loglog_outputgeneral_log_file

  • show variables like ‘general_log’; – 查看日志是否开启
  • set global general_log=on; – 开启日志功能
  • show variables like ‘general_log_file’; – 看看日志文件保存位置
  • set global general_log_file=‘tmp/general.lg’; – 设置日志文件保存位置
  • show variables like ‘log_output’; – 看看日志输出类型 table或file
  • set global log_output=‘table’; – 设置输出类型为 table
  • set global log_output=‘file’; – 设置输出类型为file

在这里插入图片描述log_output=’FILE’ 表示将日志存入文件,默认值是FILE 
log_output=’TABLE’表示将日志存入数据库,这样日志信息就会被写入到mysql.slow_log表中

  mysql数据库支持同时两种日志存储方式,配置的时候以逗号隔开即可,如:log_output=‘FILE,TABLE‘.日志记录到系统专用日志表中,要比记录到文件耗费更多的系统资源,因此对于需要启用慢查日志,又需要比够获得更高的系统性能,那么建议优先记录到文件

二、开启数据库general_log步骤

先执行sql指令:show variables like ‘%log%’;
在这里插入图片描述
可以看到默认general_logOFF的,我们直接开启:set global general_log = ON;(说明:此参考可以动态修改,但是重启mysql失效,若要永久生效,则需要修改需要在my.cnf的【mysqld】中添加:general_log = 1
在这里插入图片描述

三、general_Log文件处理

  当开启general_Log后,mysql中的所有操作将会记录下来,这样general_Log文件就会产生很大的文件,此时需要清空此文件来释放磁盘空间

错误操作

  网上有人建议直接删除该文件,不重启系统也会自动生成,但是通过测试,系统不会自动生产该文件
如果删除掉,重启mysql以后,general_log出现异常

正确操作

清空该表,具体操作如下:

SET GLOBAL general_log = 'OFF';
RENAME TABLE mysql.general_log TO mysql.general_log2;
DELETE FROM mysql.general_log2;

注意:当DELETE FROM mysql.general_log2执行删除表数据时,发现操作系统的数据文件还是存在的,需要手动删除该数据文件,再继续下面数据操作步骤

OPTIMIZE TABLE general_log2;
RENAME TABLE mysql.general_log2 TO mysql.general_log;
SET GLOBAL general_log = 'ON';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值