数据库迁移后没有运行Mysql事件

时间:2013-06-05 10:15:36

标签: mysql sql stored-procedures

我最近升级了我的服务器,从那时起调用例程的事件似乎无法正常工作。

我知道该例程有效,因为我可以手动调用它并且它没有显示任何错误。

事件代码如下所示:

DROP EVENT `event_image_update_views`//
CREATE DEFINER=`root`@`localhost` EVENT `event_image_update_views` ON SCHEDULE EVERY 5 MINUTE STARTS '2013-06-05 11:00:00' ON COMPLETION NOT PRESERVE ENABLE DO CALL image_update_views()

它基本上要求数据库在特定日期之后每隔5分钟调用一个名为image_update_views()的例程。

我相当确定我的数据库上的日期是正确的,但我不是100%肯定。是否有一个我可以运行的sql命令将返回当前时间/日期,以便我确定我提供了将来的日期?

我也不确定以下这一行:

CREATE DEFINER=`root`@`localhost`

当然应该在这里使用root用户吗?

phpmyadmin有没有办法判断事件是否已经运行?

欢迎任何建议!

1 个答案:

答案 0 :(得分:3)

可能是你的MySQL事件调度程序没有运行。

尝试此操作以查看它是否正在运行:

show variables like 'event_scheduler';

如果你得到OFF的值,那么这可能就是原因。您可以通过运行来重新打开它:

SET GLOBAL event_scheduler = ON;

如果您需要知道可以运行的MySQL当前日期和时间:

select now();

最后,您可以使用此查询查看MySQL事件调度程序上次运行事件的时间:

select event_schema,event_name,last_executed 
from information_schema.events;
祝你好运!

修改

如果您需要在默认情况下打开event_scheduler,请转到my.cnf文件(如果您使用的是Windows,则转到my.ini文件)并注释掉event_scheduler=DISABLED或设置event_scheduler=ON 。然后重启MySQL服务器。

还有一些关于它的信息here