mysql的全量(查询)日志general-log的开启和分析方法

  

,,,,熟悉mysql的朋友应该都知道,错误日志只记录数据库层的报错,binlog只记录增/删/改的记录,但是没记录谁执行,只记录执行用户名,slowlog虽然详细,但是只记录超过设定值的慢查询sql信息。

,,,,只有general-log才是记录所有的操作日志,不过他会耗费数据库5% - -10%的性能,所以一般没什么特别需要,大多数情况是不开的,例如一些sql审计和不知名的排错等,那就是打开来使用了。


<强>开启的方法

<强>,,,,强开启方法很简单,<强>

#先查看当前状态   mysql>, show  variables  like 通用%;   + - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   |,Variable_name ,,, |, Value ,,,,,,,,,,,,,,,,,,,,,,,, |   + - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   |,general_log ,,,,, |, OFF ,,,,,,,,,,,,,,,,,,,,,,,,,, |   | |,general_log_file //mysql/数据/localhost.log  |   + - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   2,rows  set 拷贝;(0.00,sec)   里#可以在my . cnf中所做添加1开启(0关闭),当然了,这样要重启才能生效,有点多余了   general-log =1   时间=log /日志/mysql_query.log路径   #也可以设置变量那样更改,1开启(0关闭),即时生效,不用重启,首选当然是这样的了   set  global  general_log=1   #这个日志对于操作频繁的库,产生的数据量会很快增长,出于对硬盘的保护,可以设置其他存放路径   set  global  general_log_file=/tmp/general_log.log

,,,,然后就开启完了,看看是否有这个文件存在并产生了日志,我们看到localhost.log已经生成了,,所以名字就是这样的。

/usr/地方/mysql/bin/mysqld,版本:,5.6.32-78.0-log  (Percona  Server  (GPL), Release  78.0, Revision  8 a8e016)只started :
  Tcp 端口:3306年,,,Unix 插座:/tmp/mysql.sock
  Time ,,,,,,,,,,,,,,,, Id  Command ,,,的论点
  160919,,9:28:19  30722, Connect , root@192.168.1.252 提醒测试
  ,,,,,,,,,,,,,,,30722,Query ,,, SET  SESSION  sql_mode =null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null

mysql的全量(查询)日志general-log的开启和分析方法