2009-06-02 15 views
13
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> 

şekilde yarattı:neden bu mysql olayı çalıştırılamıyor?

CREATE EVENT online_event 
    ON SCHEDULE EVERY 1 SECOND 
    DO 
     DELETE FROM online where webserver_id is null and jabber_server_id is null; 

ve oldukça bir süre sonra buldum:

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) 

Yani olay kesinlikle yayınlanamaz olduğunu fark.

cevap

41

Etkinlik zamanlayıcınız çalışıyor mu? SHOW PROCESSLIST ile kontrol edin.

"event_scheduler" kullanıcısı tarafından "Daemon" işleminiz yoksa, o zaman çalışmıyor.

SET GLOBAL event_scheduler = ON; 

da http://dev.mysql.com/doc/refman/5.1/en/events-configuration.html

+0

Bkz ama sunucuyu yeniden başlattığınızda otomatik olarak ben dosyasında 'satırı' event_scheduler = ENABLED' koymak –

+0

başlar değildir:

böylece olay zamanlayıcı başlat my.conf' hizmet başlatılamıyor –

+15

'my.conf' dosyasının '[mysqld]' bölümünde 'event_scheduler = ON' satırını eklemek zorunda kaldım –

İlgili konular