Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào để đặt global event_scheduler =ON ngay cả khi MySQL được khởi động lại?

Có một cách duy nhất mà bạn có thể đặt event_scheduler toàn cầu =ON ngay cả khi MySQL được khởi động lại. Bạn cần đặt biến hệ thống toàn cầu BẬT và cần sử dụng biến hệ thống này ngay cả khi MySQL khởi động lại.

Đối với điều này, tôi đang sử dụng biến hệ thống @@ event_scheduler bằng cách sử dụng câu lệnh select. Truy vấn như sau:

mysql> select @@event_scheduler;

Sau đây là kết quả:

+-------------------+
| @@event_scheduler |
+-------------------+
| ON                |
+-------------------+
1 row in set (0.00 sec)

Bây giờ, khởi động lại MySQL. Truy vấn như sau:

mysql> restart;
Query OK, 0 rows affected (0.00 sec)

Sau khi khởi động lại máy chủ, kết nối sẽ bị mất trong một thời gian. Nếu bạn sử dụng bất kỳ truy vấn nào, bạn sẽ nhận được thông báo lỗi sau:

mysql> select @@event_scheduler;
ERROR 2013 (HY000): Lost connection to MySQL server during query

Sau một thời gian, nếu bạn sử dụng lại biến hệ thống @@ event_scheduler bằng câu lệnh select, thì kết quả đầu ra bạn sẽ nhận được tương tự, tức là BẬT. Truy vấn như sau:

mysql> select @@event_scheduler;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 8
Current database: *** NONE ***
+-------------------+
| @@event_scheduler |
+-------------------+
| ON                |
+-------------------+
1 row in set (0.04 sec)

Hoặc bạn có thể BẬT event_scheduler trong tệp my.cnf hoặc tệp my.ini. Tuyên bố như sau:

[mysqld]
event_scheduler = ON;

Bây giờ event_scheduler của bạn BẬT. Dù máy chủ của bạn có khởi động lại hay không, nó sẽ luôn BẬT.