【问题标题】:Event not working in MySQL v5.5.30事件在 MySQL v5.5.30 中不起作用
【发布时间】:2013-07-31 02:45:53
【问题描述】:

我一直在尝试在 MySQL 数据库 (v5.5.30) 中创建一个事件。我遵循了 MySQL 文档中的语法,并且该事件似乎创建得很好,没有错误。但是,事件似乎并未实际执行。这是语法...

CREATE EVENT `Restock_Traders_Test`
ON SCHEDULE EVERY 1 MINUTE
ENDS '2013-07-31 00:00:00'
ON COMPLETION PRESERVE
DO update traders_data set qty = 25 where qty = 0;

虽然事件设置为每分钟触发一次,但我这样做只是为了测试。我不断检查表格以查看数量是否已更新,但似乎没有更新。有人看到我的语法有什么问题吗?有什么我错过的吗?

下面是运行SHOW EVENTS命令的结果

dayz_epoch  Restock_Traders_Test    myusername@%    SYSTEM  RECURRING   NULL    1   MINUTE  2013-07-30 14:20:10 2013-07-31 00:00:00 ENABLED 0   latin1  latin1_swedish_ci   utf8_general_ci

【问题讨论】:

    标签: mysql events


    【解决方案1】:

    你需要enable the event scheduler,默认是OFF

    SET GLOBAL event_scheduler = ON;
    

    您可以通过执行SHOW PROCESSLIST\G 并查看您是否与用户event_scheduler 有线程来查看它是否正在运行。

    虽然默认为OFF,但配置可以将其设置为DISABLED,这意味着您不能在运行时将其设置为ON。如果是这种情况,您需要更改配置文件中的设置。

    【讨论】:

    • 非常感谢。就是这样。 SHOW PROCESSLIST\G 给了我一个错误,但是如果我删除了 \G 它会显示给我列表。正如你提到的,我所要做的就是SET GLOBAL event_scheduler = ON; 并且它已启用。
    • \Gmysql 命令行客户端理解。我猜你正在使用不同的客户端!很高兴你把它分类了。不要忘记配置 my.cnfmy.ini 文件,以便在 MySQL 下次重新启动时启用事件调度程序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-22
    • 2018-12-05
    相关资源
    最近更新 更多