设置事件定时器后未生效
场景描述
设置事件定时器后未生效。
原因分析
- 在实例“概览”页面,检查事件定时器开关是否打开。
图1 概览
- 检查定时事件的状态是否是ENABLE。
show events;

如果事件定时器定义使用了DISABLE ON SLAVE语法,该事件定时器状态将被设为SLAVESIDE_DISABLED,在这种状态下,主库事件定时器不会生效。为了确保处于SLAVESIDE_DISABLED状态的事件定时器能够生效,可以采用以下两种解决方案:
- 启用定时器后,RDS for MySQL的主库默认将“event_scheduler”参数设置为“on”,而备库则设置为“off”。这样可以确保事件仅在主库上执行,并在备库上自动禁用,无需在创建事件时使用DISABLE ON SLAVE语法。
- 如果必须使用DISABLE ON SLAVE语法,可以在主节点上执行以下示例命令,以显式启用该事件。
ALTER EVENT event_name ENABLE;
- 检查数据库设置的时间是北京时间还是UTC时间。
show variables like "%time_zone%";


以上图为例,实例的时区为UTC,因此以北京时间设置事件定时器不会立即生效,等待时间到达对应UTC时间才会生效。
解决方案
为确保事件定时器正常运行,请确认其状态已设为ENABLE,且对应的时区设置正确。