MySQL中事件是由事件调度器线程执行;事件调度器的运行状态可以通过 SHOW PROCESSLIST查看:
mysql> show processlist;
+----+------+-----------+------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+------+---------+------+-------+------------------+
| 19 | root | localhost | NULL | Query | 0 | init | show processlist |
+----+------+-----------+------+---------+------+-------+------------------+
1 row in set (0.00 sec)
全局系统变量event_scheduler决定事件调度器是否可用、是否启动。下面是event_scheduler的可配置值:
- ON:默认值,表示事件调度器已启动,可以设置为OFF进行停止。
- OFF: 表示事件调度器已停止 ,可以设置为ON进行启动。
- DISABLED:禁用事件调度器。可在mysql的配置文件(linux中my.cnf ,windows中my.init)中添加event_scheduler=DISABLED,或在启动mysql服务器命令行添加--event_scheduler=DISABLED参数执行。
事件调度器在没有被禁用的时,可以使用ON或1开启,OFF或0停止:
#开启
mysql>SET GLOBAL event_scheduler = ON;
mysql>SET @@GLOBAL.event_scheduler = ON;
mysql>SET GLOBAL event_scheduler = 1;
mysql>SET @@GLOBAL.event_scheduler = 1;
#停止
mysql>SET GLOBAL event_scheduler = OFF;
mysql>SET @@GLOBAL.event_scheduler = OFF;
mysql>SET GLOBAL event_scheduler = 0;
mysql>SET @@GLOBAL.event_scheduler = 0;
在进行MySQL数据的快照备份同步中,如果有创建的事件在任务调度时允许,可能会导致异常。所以在进行快照同步操作的时候,先停止事件任务调度。