Như đã nêu tại đây :
Hai lý do phổ biến nhất (và các bản sửa lỗi) cho máy chủ MySQL đã biến mất (lỗi 2006) là:
Máy chủ hết thời gian chờ và đóng kết nối. Cách khắc phục:
kiểm tra xem biến wait_timeout trong tệp cấu hình my.cnf của mysqld có đủ lớn hay không. Trên Debian:
sudo nano /etc/mysql/my.cnf
, đặtwait_timeout = 600
giây (bạn không thể chỉnh / giảm giá trị này khi lỗi 2006 biến mất), sau đósudo /etc/init.d/mysql restart
. Tôi đã không kiểm tra, nhưng giá trị mặc định chowait_timeout có thể vào khoảng 28800 giây (8 giờ).Máy chủ đã bỏ một gói tin không chính xác hoặc quá lớn. Nếu mysqld nhận được một gói tin quá lớn hoặc không chính xác, nó sẽ giả định rằng có vấn đề gì đó xảy ra với máy khách và đóng kết nối. Bạn có thể tăng giới hạn kích thước gói tối đa bằng cách tăng giá trị củamax_allowed_packet trong tệp my.cnf. Trên Debian:
sudo nano /etc/mysql/my.cnf
, đặtmax_allowed_packet = 64M
(bạn không thể chỉnh sửa / giảm giá trị này khi lỗi 2006 biến mất), sau đósudo /etc/init.d/mysql restart
.
Chỉnh sửa:
Lưu ý rằng các tệp tùy chọn MySQL không có sẵn các lệnh của chúng dưới dạng nhận xét (như trong php.ini chẳng hạn). Vì vậy, bạn phải nhập bất kỳ thay đổi / tinh chỉnh nào trong my.cnf
hoặc my.ini
và đặt chúng trong mysql/data
thư mục hoặc trong bất kỳ đường dẫn nào khác, trong nhóm tùy chọn thích hợp, chẳng hạn như [client]
, [myslqd]
, v.v. Ví dụ:
[mysqld]
wait_timeout = 600
max_allowed_packet = 64M
Sau đó khởi động lại máy chủ. Để nhận các giá trị của chúng, hãy nhập ứng dụng khách mysql:
> select @@wait_timeout;
> select @@max_allowed_packet;