mysql - 从 Mysql 通用日志表中删除旧行(MyISAM 不是 CSV)

标签 mysql logging

我想从 mysql.general_log 表中删除旧行,但遇到了这个错误:

#1556 - You can't use locks with log tables.

这是我运行的查询:

DELETE FROM `general_log` WHERE `event_time` < "2014-01-25 14:05"

最佳答案

您可以重命名表,根据需要执行清理,然后再次恢复表名。

例子:

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';

关于mysql - 从 Mysql 通用日志表中删除旧行(MyISAM 不是 CSV),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21357177/

相关文章:

java - SyslogAppender 在 Windows 中不工作

java - 类路径中的 logback.xml 与logging.config一起执行 环境参数 spring boot

MySQL:更新触发器。如果不匹配任何行,获取 UPDATE 的 where 子句中使用的列的值?

mysql - 组合 IN AND LIKE 运算符

mysql - 为什么 SQL NOT EXISTS 返回所有 NULL 值的 1 条记录

mysql - TPCH 查询优化

python - 如何获取 Python 日志模块当前正在登录的文件?

Python,记录打印语句,同时将它们打印到标准输出

php - codeigniter 通知系统的数据库表结构

c++ - 我想使用宏多参数始终为空来跟踪日志。 c++ windows 问题