mysql之general_log⽇志开启详解以及清空
General_log 详解
1.介绍
开启 general log 将所有到达MySQL Server的SQL语句记录下来。
⼀般不会开启开功能,因为log的量会⾮常庞⼤。但个别情况下可能会临时的开⼀会⼉general log以供排障使⽤。
相关参数⼀共有3:general_log、log_output、general_log_file
1. show variables like 'general_log'; -- 查看⽇志是否开启
2. set global general_log=on; -- 开启⽇志功能
3. show variables like 'general_log_file'; -- 看看⽇志⽂件保存位置
4. set global general_log_file='tmp/general.lg'; -- 设置⽇志⽂件保存位置
5. show variables like 'log_output'; -- 看看⽇志输出类型 table或file
6. set global log_output='table'; -- 设置输出类型为 table
7. set global log_output='file'; -- 设置输出类型为file
log_output=’FILE’ 表⽰将⽇志存⼊⽂件,默认值是FILE
log_output=’TABLE’表⽰将⽇志存⼊数据库,这样⽇志信息就会被写⼊到mysql.slow_log表中.
mysql数据库⽀持同时两种⽇志存储⽅式,配置的时候以逗号隔开即可,如:log_output=‘FILE,TABLE‘.⽇志记录到系统专⽤⽇志表中,要⽐记录到⽂件耗费更多的系统资源,因此对于需要启⽤慢查⽇志,⼜需要⽐够获得更⾼的系统性能,那么建议优先记录到⽂件.
2.开启数据库general_log步骤
先执⾏sql指令:show variables like ‘%log%’;
可以看到默认general_log是OFF的,我们直接开启:set global general_log = ON;(说明:此参考可以动态修改,但是重启mysql失效,弱要永久⽣效,则需要修改需要在myf的【mysqld】中添加:general_log = 1)
general_Log⽂件处理:
当开启general_Log后,mysql中的所有操作将会记录下来,这样general_Log⽂件就会产⽣很⼤的⽂件,此时需要清空此⽂件来释放磁盘空间
1、错误操作:
⽹上有⼈建议直接删除该⽂件,不重启系统也会⾃动⽣成,但是通过测试,系统不会⾃动⽣产该⽂件
如果删除掉,重启mysql以后,general_log出现异常
2、正确的操作:
清空该表,具体操作如下:
SET GLOBAL general_log = 'OFF';
RENAME al_log al_log2;
DELETE al_log2;
mysql存储文档注意:当DELETE al_log2执⾏删除表数据时,发现操作系统的数据⽂件还是存在的,需要⼿动删除该数据⽂件,再继续下⾯数据操作步骤
OPTIMIZE TABLE general_log2;
RENAME al_log2 al_log;
SET GLOBAL general_log = 'ON';
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论