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>
It's created this way:
CREATE EVENT online_event
ON SCHEDULE EVERY 1 SECOND
DO
DELETE FROM online where webserver_id is null and jabber_server_id is null;
and after quite a period,I found:
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)
So I find that the event is not run at all.
To turn the Event Scheduler ON , run the following command: SET GLOBAL event_scheduler = ON; The value ON is interchangeable with 1 . OFF : The Event Scheduler thread is not running, and it does not show up in the output of SHOW processlist .
SELECT * FROM INFORMATION_SCHEMA. events; You can also use SHOW CREATE EVENT yourevent to see what it does.
Normally, once an event has expired, it is immediately dropped. You can override this behavior by specifying ON COMPLETION PRESERVE . Using ON COMPLETION NOT PRESERVE merely makes the default nonpersistent behavior explicit. You can create an event but prevent it from being active using the DISABLE keyword.
Is your event scheduler running? Check with SHOW PROCESSLIST
.
If you don't have a process "Daemon" by user "event_scheduler" then it's not running.
Start the event scheduler thus:
SET GLOBAL event_scheduler = ON;
See also http://dev.mysql.com/doc/refman/5.1/en/events-configuration.html
First you must check using :
SHOW VARIABLES LIKE 'event_scheduler';
if it's OFF you must run event scheduler using :
SET GLOBAL event_scheduler = ON;
My you must save this variable in your config (my.ini / my.conf) , if you don't events will not start when mysql restart .
[mysql]
event_scheduler=ON
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With