MySQL的General log开销比较大,一般不建议开启,error日志只记录数据库层的报错,binlog只记录增/删/改的记录,但是没记录谁执行,只记录执行用户名,slowlog虽然详细,但是只记录超过设定值的慢查询sql信息.

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

开启方法

先查看当前状态

mysql> show variables like 'general%';
+------------------+--------------------------------------+
| Variable_name    | Value                                |
+------------------+--------------------------------------+
| general_log      | OFF                                  |
| general_log_file | /data/mysql/data/business-data01.log |
+------------------+--------------------------------------+
2 rows in set (0.00 sec)

现在状态是关闭的,开启下:
可以在my.cnf里添加,1开启(0关闭)
general-log = 1
log = /data/mysql/data/business-data01.log 路径
这样要重启才能生效,比较麻烦

set global general_log = 1    --1开启(0关闭),即时生效,不用重启
set global general_log_file = /data/mysql/data/business-data01.log
set general_log = 1  -- 对当前 session 生效需要.

general日志对于操作频繁的库,产生的数据量会很快增长,出于对硬盘的保护,可以设置其他存放路径,general log 没事别开启,对数据库性能损耗较大。

Tags标签: 日志,general-log,开启,全量 Tags相关文章如下:

上一篇:常见iptables使用规则场景整理

下一篇:CentOS安装rlwrap工具