mysql - 创建事件冲突

标签 mysql sql

我是一名有抱负的 DBA,正在努力磨练自己的技能。我在 Ubuntu Server 12.04 上运行 MySQL 5.5 作为我公司想要上线的 SysLog 服务器。 giddyup 中唯一的障碍是不使用 LogAnalyzer 的清除功能,我想创建自己的 SQL 以将日志文件每个月长时间放在一个单独的表中,然后在六个月后完全清除它们。

经过多次测试,我知道我的查询有效,我认为问题出在 CREATE EVENT 部分。但是事件仍然没有触发,也没有移动任何东西。

DELIMITER ;;

CREATE EVENT SystemLogPurge

ON SCHEDULE EVERY 1 DAY STARTS '2014-7-29 15:55:00'

DO BEGIN

INSERT INTO PastSystemEvents SELECT * FROM SystemEvents WHERE ReceivedAt < 
DATE_ADD(CURRENT_TIMESTAMP, INTERVAL -1 MONTH);

DELETE FROM SystemEvents WHERE ReceivedAt < DATE_ADD(CURRENT_TIMESTAMP, INTERVAL -1 MONTH);

DELETE FROM PastSystemEvents WHERE ReceivedAt < DATE_ADD(CURRENT_TIMESTAMP, INTERVAL -6 MONTH);

END;

;;

有什么我想念的吗?或者甚至可以做到?

最佳答案

您是否检查过 event_scheduler = ON 的服务器变量。 这看起来很明显,但有时我们会卡住而忘记检查简单的事情。 你可以试试这个:

设置全局 event_scheduler = ON;

或在您的 my.cnf 文件中添加/更改此变量

关于mysql - 创建事件冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25024295/

相关文章:

php - 将一列连接到另一张表

sql - 如何在 SQL 中聚合 7 天

php - 使用来自另一个数据库的选择查询更新 mysql 表

mysql - 选择在已知日期范围内的行

mysql - CakePHP 在成功查询时返回 False

php - 函数内部的全局数据库连接

mysql - 多列上的多个索引

MySQL 在一个查询中将 SUM() 函数乘以字段

mysql - 从分组消息 SQL 中返回最后一条消息

sql - SQL Server 数据库中具有最大大小的 INT 类型