Jak stwierdzono tutaj :
Dwie najczęstsze przyczyny (i poprawki) zniknięcia serwera MySQL (błąd 2006):
Serwer przekroczył limit czasu i zamknął połączenie. Jak naprawić:
-
sprawdź, czy zmienna wait_timeout w pliku konfiguracyjnym mysqld my.cnf jest wystarczająco duża. W Debianie:
sudo nano /etc/mysql/my.cnf
, ustawwait_timeout = 600
sekund (możesz zmienić/zmniejszyć tę wartość, gdy błąd 2006 zniknie), a następniesudo /etc/init.d/mysql restart
. Nie sprawdzałem, ale domyślna wartość forwait_timeout może wynosić około 28800 sekund (8 godzin). -
Serwer odrzucił niepoprawny lub zbyt duży pakiet. Jeśli mysqld otrzyma pakiet, który jest zbyt duży lub niepoprawny, zakłada, że coś poszło nie tak z klientem i zamyka połączenie. Możesz zwiększyć maksymalny limit rozmiaru pakietu, zwiększając wartość max_allowed_packet w pliku my.cnf. W Debianie:
sudo nano /etc/mysql/my.cnf
, ustawmax_allowed_packet = 64M
(możesz zmienić/zmniejszyć tę wartość, gdy błąd 2006 zniknie), a następniesudo /etc/init.d/mysql restart
.
Edytuj:
Zauważ, że pliki opcji MySQL nie mają już poleceń dostępnych jako komentarze (jak na przykład w php.ini). Musisz więc wpisać dowolną zmianę/poprawkę w my.cnf
lub my.ini
i umieść je w mysql/data
katalogu lub w dowolnej innej ścieżce, pod odpowiednią grupą opcji, takich jak [client]
, [myslqd]
itp. Na przykład:
[mysqld]
wait_timeout = 600
max_allowed_packet = 64M
Następnie uruchom ponownie serwer. Aby uzyskać ich wartości, wpisz w kliencie mysql:
> select @@wait_timeout;
> select @@max_allowed_packet;