mysql开启通用日志_MySQL开启通用查询日志

这种日志就是用来记录在MySQL上执行过的SQL语句,包括DDL和DML以及特殊命令如SET,而不仅仅是select语句。因为select可能非常频繁,因此通用查询日志默认是没有开启的,一般在需要采样分析的时候才会开启并且要及时的关闭。开启通用查询日志不仅浪费存储空间,还会由于频繁的IO而影响系统性能。

例如要分析哪些查询最耗时,对哪些表或哪些列的查询比较频繁就需要通过通用查询日志来分析。

1.开启通用查询日志

有两种方法来开启通用查询日志,一种是在登录mysql后执行命令,另一种是在my.cnf中配置。

(1)执行命令开启: SET GLOBAL general_log=1;   //=0就是关闭通用查询日志。

此时在默认在mysql的data目录中生成了localhost.log文件,该文件就是通用查询日志文件。

(2)my.cnf中配置的方式,在my.cnf文件的[mysqld]下面任意一行增加或修改配置:

general_log-file[=path/[filename]]   //可见=后面都是可选的,即有默认的保存日志的文件

general_log=1     //表示开启通用查询日志

推荐使用第一种方式开启或关闭通用查询日志,因为my.cnf的修改要生效需要重启mysql服务,并且这种通用查询日志的开启不需要一直开启而是短时间开启就需要关闭,所以在   my.cnf关闭时又要重启mysql服务。

如果没有指定通用查询日志文件的位置(general_log-file),包括SET命令开启的,默认会放在数据文件所在目录中,以主机名.log命名,例如:/var/lib/mysql/localhost.log

2.通用查询日志文件的内容

例如登录mysql后执行了select语句,那么就是将该语句实时的记录到通用查询日志中,例如:

35096b616dee4178c9edef9d4050a4f0.png

包括对mysql执行的一些特殊命令,例如set命令都会记录下来

3.删除查询日志

查询日志由于SQL语句会非常频繁的执行,因此使用完毕后要即使关闭并删除不需要的查询日志,例如:

set global  general_log=0;

rm -f  /var/lib/mysql/localhost.log

删除日志文件之前需要先关闭通用查询日志,然后才能删除,否则可能会引起mysql的错误。如果是配置到了my.cnf文件中,那么需要先取消配置并重启mysql服务,然后才可以删除日志文件。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值