Bạn cần xem xét những giá trị mặc định nào được đặt ra cho thời gian chờ:
mysql> show variables like '%timeout';
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| connect_timeout | 10 |
| delayed_insert_timeout | 300 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 60 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| table_lock_wait_timeout | 50 |
| wait_timeout | 60 |
+----------------------------+-------+
10 rows in set (0.00 sec)
Thông thường, tôi xem một số biến thời gian chờ. Điều này là rất bắt buộc nếu bạn sử dụng MySQL từ xa từ MySQL Workbench, máy khách mysql hoặc ứng dụng PHP trên máy chủ ứng dụng liên hệ với MySQL trên Máy chủ DB.
Đây là những gì Tài liệu MySQL nói về một trong các cài đặt này:
- Wait_timeout (Mặc định 28800 [8 giờ]): Số giây máy chủ chờ hoạt động trên kết nối không tương tác trước khi đóng. Thời gian chờ này chỉ áp dụng cho các kết nối tệp socket TCP / IP và Unix, không áp dụng cho các kết nối được thực hiện bằng cách sử dụng các đường dẫn có tên hoặc bộ nhớ dùng chung. Khi khởi động luồng, giá trị Wait_timeout phiên được khởi tạo từ giá trị Wait_timeout toàn cầu hoặc từ giá trị tương tác toàn cầu, tùy thuộc vào loại máy khách (như được xác định bởi tùy chọn kết nối CLIENT_INTERACTIVE với mysql_real_connect ()). Xem thêm tương tác_timeout.
- interactive_timeout (Mặc định 28800 [8 giờ]): Số giây chờ đợi máy chủ cho hoạt động trên một kết nối tương tác trước khi đóng cửa nó. Một máy khách tương tác được định nghĩa là một máy khách sử dụng tùy chọn CLIENT_INTERACTIVE để mysql_real_connect (). Xem thêm Wait_timeout.
- net_read_timeout (Mặc định 30): Số giây chờ thêm dữ liệu từ một kết nối trước khi hủy đọc. Khi máy chủ đang đọc từ máy khách, net_read_timeout là giá trị hết thời gian kiểm soát khi hủy bỏ. Khi máy chủ ghi vào máy khách, net_write_timeout là giá trị hết thời gian kiểm soát khi hủy bỏ. Xem thêm Slave_net_timeout.
- net_write_timeout (Mặc định 60): Số giây chờ một khối được ghi vào kết nối trước khi hủy ghi. Xem thêm net_read_timeout.
Vui lòng đảm bảo rằng các thời gian chờ này được đặt đủ cao để phù hợp với các truy vấn có thể chạy trong một thời gian rất dài, có thể bao gồm:
- Khối lượng
UPDATEs
- Khối lượng
DELETEs
ENABLE KEYS
trên một MyISAM lớn
Để xử lý các truy vấn tiếp tục chạy sau khi bạn mất liên lạc với nó, bạn phải chạy KILL đối với ID tiến trình của truy vấn chạy dài. Ngay cả với lệnh KILL, bạn sẽ phải chờ bất kỳ truy vấn nào ở giữa các bước sử dụng nhiều đĩa hoặc có các đột biến nội bộ đang diễn ra.