1.general_log表作用
开启 general log 将所有到达MySQL Server的SQL语句记录下来。
一般不会开启开功能,因为log的量会非常庞大。但个别情况下可能会临时的开一会儿general log以供排障使用。
2.general_log表详情
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| mysql> show variables like 'general_log'; + | Variable_name | Value | + | general_log | OFF | + 1 row in set (0.00 sec)
相关参数一共有3: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';
set global log_output='table';
set global log_output='file';
mysql> show variables like 'log_output'; + | Variable_name | Value | + | log_output | FILE | + 1 row in set (0.00 sec) log_output=’FILE’ 表示将日志存入文件,默认值是FILE log_output=’TABLE’表示将日志存入数据库,这样日志信息就会被写入到mysql.slow_log表中.
mysql数据库支持同时两种日志存储方式,配置的时候以逗号隔开即可,如:log_output=‘FILE,TABLE‘.日志记录到系统专用日志表中,要比记录到文件耗费更多的系统资源,因此对于需要启用慢查日志,又需要比够获得更高的系统性能,那么建议优先记录到文件。
|
3.开启数据库general_log步骤
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| mysql> show variables like 'general_log'; + | Variable_name | Value | + | general_log | OFF | + 1 row in set (0.00 sec)
mysql> set global general_log = ON; Query OK, 0 rows affected (0.00 sec)
mysql> show variables like 'general_log'; + | Variable_name | Value | + | general_log | ON | + 1 row in set (0.00 sec)
|
4.general_Log文件处理:
当开启general_Log后,mysql中的所有操作将会记录下来,这样general_Log文件就会产生很大的文件,此时需要清空此文件来释放磁盘空间。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| 清空该表,具体操作如下:
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';
|