show events;show variables like 'event_scheduler';贴出以供分析。
已经开启过了, /*开启功能*/ SET GLOBAL event_scheduler = ON;
mysql> show events; +-------+----------+----------------+-----------+-----------+------------+----------------+----------------+---------------------+------+---------+------------+----------------------+----------------------+--------------------+ | Db | Name | Definer | Time zone | Type | Execute at | Interval value | Interval field | Starts | Ends | Status | Originator | character_set_client | collation_connection | Database Collation | +-------+----------+----------------+-----------+-----------+------------+----------------+----------------+---------------------+------+---------+------------+----------------------+----------------------+--------------------+ | EASY7 | eventlog | root@localhost | SYSTEM | RECURRING | NULL | 1 | DAY | 2010-12-24 20:00:00 | NULL | ENABLED | 1 | utf8 | utf8_general_ci | utf8_general_ci | +-------+----------+----------------+-----------+-----------+------------+----------------+----------------+---------------------+------+---------+------------+----------------------+----------------------+--------------------+ 1 row in set (0.00 sec)
mysql> SHOW VARIABLES LIKE 'event_scheduler'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | event_scheduler | ON | +-----------------+-------+ 1 row in set (0.02 sec)
mysql> show events; +-------+----------+----------------+-----------+-----------+------------+----------------+----------------+---------------------+------+---------+------------+----------------------+----------------------+--------------------+ | Db | Name | Definer | Time zone | Type | Execute at | Interval value | Interval field | Starts | Ends | Status | Originator | character_set_client | collation_connection | Database Collation | +-------+----------+----------------+-----------+-----------+------------+----------------+----------------+---------------------+------+---------+------------+----------------------+----------------------+--------------------+ | EASY7 | eventlog | root@localhost | SYSTEM | RECURRING | NULL | 1 | DAY | 2012-12-29 09:00:00 | NULL | ENABLED | 1 | utf8 | utf8_general_ci | utf8_general_ci | +-------+----------+----------------+-----------+-----------+------------+----------------+----------------+---------------------+------+---------+------------+----------------------+----------------------+--------------------+ 1 row in set (0.04 sec)不好意思 贴错了,这个才是对的……
/*开启功能*/ SET GLOBAL event_scheduler = ON;
+-------+----------+----------------+-----------+-----------+------------+----------------+----------------+---------------------+------+---------+------------+----------------------+----------------------+--------------------+
| Db | Name | Definer | Time zone | Type | Execute at | Interval value | Interval field | Starts | Ends | Status | Originator | character_set_client | collation_connection | Database Collation |
+-------+----------+----------------+-----------+-----------+------------+----------------+----------------+---------------------+------+---------+------------+----------------------+----------------------+--------------------+
| EASY7 | eventlog | root@localhost | SYSTEM | RECURRING | NULL | 1 | DAY | 2010-12-24 20:00:00 | NULL | ENABLED | 1 | utf8 | utf8_general_ci | utf8_general_ci |
+-------+----------+----------------+-----------+-----------+------------+----------------+----------------+---------------------+------+---------+------------+----------------------+----------------------+--------------------+
1 row in set (0.00 sec)
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| event_scheduler | ON |
+-----------------+-------+
1 row in set (0.02 sec)
+-------+----------+----------------+-----------+-----------+------------+----------------+----------------+---------------------+------+---------+------------+----------------------+----------------------+--------------------+
| Db | Name | Definer | Time zone | Type | Execute at | Interval value | Interval field | Starts | Ends | Status | Originator | character_set_client | collation_connection | Database Collation |
+-------+----------+----------------+-----------+-----------+------------+----------------+----------------+---------------------+------+---------+------------+----------------------+----------------------+--------------------+
| EASY7 | eventlog | root@localhost | SYSTEM | RECURRING | NULL | 1 | DAY | 2012-12-29 09:00:00 | NULL | ENABLED | 1 | utf8 | utf8_general_ci | utf8_general_ci |
+-------+----------+----------------+-----------+-----------+------------+----------------+----------------+---------------------+------+---------+------------+----------------------+----------------------+--------------------+
1 row in set (0.04 sec)不好意思 贴错了,这个才是对的……
测试环境是windows 7
mysql-5.6.12
调整过时间后event并不执行
但是调整时间后
重启mysql服务之后
event执行正常
所以个人认为
mysql的event执行的时候就是在mysql服务启动后自动计算该event到下一次需要执行的时间间隔
然后启动定时器自己跑着,等到timeout了就执行该event中的代码这一点跟我们平常项目中做的定时任务原则差不多
以上分析属于个人分析意见
仅供参考