mysql> show create event online_event; +--------------+-----------------------------------------+-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+ | Event | sql_mode | time_zone | Create Event | character_set_client | collation_connection | Database Collation | +--------------+-----------------------------------------+-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+ | online_event | STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER | SYSTEM | CREATE EVENT `online_event` ON SCHEDULE EVERY 1 SECOND STARTS '2009-06-03 06:54:16' ON COMPLETION NOT PRESERVE ENABLE DO DELETE FROM online where webserver_id is null and jabber_server_id is null | utf8 | utf8_general_ci | utf8_general_ci | +--------------+-----------------------------------------+-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+ 1 row in set (0.00 sec) mysql>
它是通过以下方式创建的:
CREATE EVENT online_event ON SCHEDULE EVERY 1 SECOND DO DELETE FROM online where webserver_id is null and jabber_server_id is null;
一段时间后,我发现:
mysql> select *from online; +----+------------+---------------------+--------------+------------------+ | id | account_id | since | webserver_id | jabber_server_id | +----+------------+---------------------+--------------+------------------+ | 1 | 30 | 2009-06-03 06:24:38 | NULL | NULL | +----+------------+---------------------+--------------+------------------+ 1 row in set (0.00 sec)
因此,我发现该事件根本没有运行。
您的事件调度程序正在运行吗?用检查SHOW PROCESSLIST。
SHOW PROCESSLIST
如果您没有用户“ event_scheduler”的进程“ Daemon”,则该进程未运行。
因此,启动事件调度程序:
SET GLOBAL event_scheduler = ON;
另请参见http://dev.mysql.com/doc/refman/5.1/zh-CN/events- configuration.html