Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL事件调度器不工作,但一切都已设置_Mysql_Events - Fatal编程技术网

MySQL事件调度器不工作,但一切都已设置

MySQL事件调度器不工作,但一切都已设置,mysql,events,Mysql,Events,我的MySQL事件永远不想执行。 我使用最新的5.6.10版本,但问题也出现在5.5版本中。 我有一个主-多个从配置。我想在主机上运行事件。 在my.ini中,我已经设置了 事件调度程序=打开 2、检查此项: show variables like '%event_scheduler%'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | event_scheduler |

我的MySQL事件永远不想执行。
我使用最新的5.6.10版本,但问题也出现在5.5版本中。
我有一个主-多个从配置。我想在主机上运行事件。

  • 在my.ini中,我已经设置了 事件调度程序=打开
  • 2、检查此项:

    show variables like '%event_scheduler%';
    +-----------------+-------+
    | Variable_name   | Value |
    +-----------------+-------+
    | event_scheduler | ON    |
    +-----------------+-------+
    
    show processlist\G
    
    Id: 1
    User: event_scheduler
    Host: localhost
    db: NULL
    Command: Daemon
    Time: 720
    State: Waiting on empty queue
    Info: NULL
    ...
    
    3,接下来我在主服务器上有一个重复事件。
    这是我永远不想执行的。我还试着把日期改成不同的时间

    CREATE EVENT IF NOT EXISTS dbname.event_xyz
    ON SCHEDULE EVERY 1 DAY STARTS '2013-02-05 00:15:00'
    ON COMPLETION PRESERVE
    DISABLE ON SLAVE
    COMMENT 'Collect data from ...'
    DO CALL dbname._procedurename;
    
    直接调用“\u procedurename”过程没有错误

    4、事件和过程的创建者是“根”

    5、系统的输出

    show events\G
    
    Db: dbname
    Name: event_xyz
    Definer: root@localhost
    Time zone: SYSTEM
    Type: RECURRING
    Execute at: NULL
    Interval value: 1
    Interval field: DAY
    Starts: 2013-02-05 00:15:00
    Ends: NULL
    Status: SLAVESIDE_DISABLED
    Originator: 1
    character_set_client: utf8
    collation_connection: utf8_general_ci
    Database Collation: utf8_general_ci
    
    6,重新启动主服务器我在 masterservername.err:

    ...
    Event Scheduler: Purging the queue. 0 events
    ...
    Event Scheduler: Loaded 0 events
    ...
    

    show processlist\G
    
    显示事件调度程序

    State: Waiting on empty queue !
    
    所以,我的问题是为什么不在主服务器上运行该事件
    为什么事件计划程序不知道有关先前定义的事件的任何信息
    我遗漏了什么吗?

    也许这是一个bug

    解决的办法是移除

    DISABLE ON SLAVE
    
    事件声明命令中的参数

    在此之后,事件状态更改为“已启用”状态,并由主服务器上的事件计划程序触发

    在从属服务器上,此事件的状态以“从属服务器禁用”状态复制

    那么,在创建事件语法中存在“DISABLE ON SLAVE”参数的目的是什么呢?

    也许这是一个bug

    解决的办法是移除

    DISABLE ON SLAVE
    
    事件声明命令中的参数

    在此之后,事件状态更改为“已启用”状态,并由主服务器上的事件计划程序触发

    在从属服务器上,此事件的状态以“从属服务器禁用”状态复制


    那么,在创建事件语法中存在“DISABLE ON SLAVE”参数的目的是什么呢?

    这可能是bug,在5.6.14中修复了这可能是bug,在5.6.14中修复了您能测试事件的主体吗?程序可能有问题。尝试执行INSERT或任何其他语句以确保事件正常工作。直接调用事件正文时没有错误。错误日志中是否有错误?否。日志中没有错误。是否可以测试事件正文?程序可能有问题。尝试执行INSERT或任何其他语句以确保事件正常工作。直接调用事件正文时没有错误。错误日志中是否有错误?否。日志中没有错误。