admin

数据库迁移后Mysql事件未运行

sql

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

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

事件代码如下所示:

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中有什么方法可以告诉事件是否已运行?

任何建议欢迎!


阅读 182

收藏
2021-06-07

共1个答案

admin

可能是您的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服务器。

这里有更多有关它的信息

2021-06-07