我的MySQL事件永远不想执行
我使用最新的5.6.10版本,但问题也出现在5.5版本中
我有1个Master-Many Slaves配置。我想在主人身上举办这个活动。
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;
我没有错误直接调用“_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
显示event_scheduler
State: Waiting on empty queue !
所以,我的问题是为什么不在我的主服务器上运行该事件?
为什么事件调度程序对先前定义的事件一无所知?
我错过了什么吗?
答案 0 :(得分:3)
也许这是一个错误。
解决方案是删除
DISABLE ON SLAVE
事件声明命令中的参数。
此后,事件状态更改为“ENABLED”状态,并由主服务器上的Event Scheduler触发。
在奴隶上,此事件的状态以“SLAVESIDE_DISABLED”状态复制。
那么,为什么存在CREATE EVENT语法中的“DISABLE ON SLAVE”参数?
答案 1 :(得分:0)
这可能是错误http://bugs.mysql.com/bug.php?id=67191,修正于5.6.14