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

Nó được tạo ra theo cách này:tại sao sự kiện mysql này không thể chạy?

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

và sau một thời gian khá lâu, tôi thấy:

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) 

Vì vậy, tôi thấy rằng sự kiện này không chạy gì cả.

Trả lời

41

Trình lập lịch sự kiện của bạn có đang chạy không? Kiểm tra với SHOW PROCESSLIST.

Nếu bạn không có quá trình "Daemon" bởi người dùng "event_scheduler" thì nó không chạy.

Bắt đầu lên lịch sự kiện như sau:

SET GLOBAL event_scheduler = ON; 

Xem thêm http://dev.mysql.com/doc/refman/5.1/en/events-configuration.html

+0

nhưng khi tôi khởi động lại máy chủ nó không bắt đầu tự động –

+0

khi tôi đặt dòng 'event_scheduler = ENABLED' trong file ' my.conf' dịch vụ không bắt đầu –

+15

Tôi đã phải chèn dòng 'event_scheduler = ON' trong phần' [mysqld] 'của tệp' my.conf' –

Các vấn đề liên quan