从Mysql常规日志表中删除旧行(MyISAM不是CSV)

But*_*kus 10 mysql logging

我想从我的mysql.general_log表中删除旧行但遇到此错误:

#1556 - You can't use locks with log tables.
Run Code Online (Sandbox Code Playgroud)

这是我跑的查询:

DELETE FROM `general_log` WHERE `event_time` < "2014-01-25 14:05"
Run Code Online (Sandbox Code Playgroud)

tec*_*ero 20

您可以重命名表,根据需要执行清理,然后再次还原表名.

例:

SET GLOBAL general_log = 'OFF';
RENAME TABLE general_log TO general_log_temp;
DELETE FROM `general_log_temp` WHERE `event_time` < DATE(NOW());
RENAME TABLE general_log_temp TO general_log;
SET GLOBAL general_log = 'ON';
Run Code Online (Sandbox Code Playgroud)

  • 你可能也想选择正确的数据库,从`use mysql`开始,然后在答案中做什么 (4认同)