我不会接受我不要的未来
哪怕是命中注定

mysql general_log日志开启详解以及清空

General_log 详解

1.介绍

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

一般不会开启此功能,因为log的量会非常庞大。
相关参数:

  • general_log
  • log_output
  • general_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

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

2. 开启数据库general_log

我们直接开启:set global general_log = ON;(说明:此参考可以动态修改,但是重启mysql失效,弱要永久生效,则需要修改需要在my.cnf的【mysqld】中添加:general_log = 1)

general_Log文件处理:

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

1、错误操作:

网上有人建议直接删除该文件,不重启系统也会自动生成,但是通过测试,系统不会自动生产该文件

如果删除掉,重启mysql以后,general_log出现异常

2、正确的操作:

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

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)
未经允许不得转载:技术搬运工 » mysql general_log日志开启详解以及清空
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

我们不生产技术 我们只是技术的搬运工