2009-06-02 14 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> 

それは、このように作成されます:なぜこの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) 

だから私は、イベントがまったく実行されていないことがわかります。

答えて

41

イベントスケジューラは動作していますか?チェックはSHOW PROCESSLISTです。

ユーザー "event_scheduler"によってプロセス "Daemon"がない場合は実行されていません。

スタートので、イベントスケジューラ:

SET GLOBAL event_scheduler = ON; 

も参照してくださいhttp://dev.mysql.com/doc/refman/5.1/en/events-configuration.html

+0

が、私は、サーバーを再起動したときに、私は、ファイル内の行 'event_scheduler = ENABLED'を入れたときに、それは'自動的 –

+0

を開始しません。 my.conf'サービスが起動しない –

+15

'my.conf'ファイルの' [mysqld] 'セクションに' event_scheduler = ON'という行を挿入する必要がありました –

関連する問題