我是一名有抱负的 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/