Jak naprawić utracone połączenie MySQL

Jak naprawić utracone połączenie MySQL
W niektórych przypadkach podczas pracy z bazami danych MySQL możesz napotkać błąd „Błąd 2013: Lost Connection z MySQL Server podczas zapytania”. Chociaż może to być frustrujące, kiedy to się stanie, istnieje stosunkowo prosty powód, dla którego tak się dzieje i jak możesz to naprawić.

Co powoduje błąd „utraconego połączenia z serwerem MySQL podczas zapytania”?

Ten rodzaj błędu występuje, gdy połączenie między klientem a serwerem przekroczy określoną wartość limitu czasu.

Na przykład, jeśli masz długie zapytanie, które zajmuje dużo czasu na wykonanie wykonania, MySQL zrzuca połączenie z serwerem.

Weźmy na przykład, eksportując dużą bazę danych, w zależności od metody eksportu i wyeksportowania danych, zakończenie tego procesu może potrwać dużo czasu. Aby zapobiec problemom na serwerze, MySQL może zakończyć to połączenie przed zakończeniem procesu.

Inną powszechną przyczyną tego rodzaju błędu jest złożone operacje łączenia.

MySQL Pokaż wartość limitu czasu

Jak wspomniano, możesz naprawić ten rodzaj błędu, po prostu zwiększając czas trwania limitu czasu po stronie serwera.

Wartości limitu czasu są przechowywane w zmiennych Wait_Timeout i Interactive_timeout. Możemy pobrać bieżące wartości, jak pokazano w następujących zapytaniach:

Mysql> Pokaż globalne zmienne, takie jak „Interactive_timeout”;

Powstałe wyjście jest następujące:

+---------------------+-------+
|. Zmienna_nazwa | Wartość |
+---------------------+-------+
|. Interactive_timeout | 28800 |
+---------------------+-------+
1 wiersz w zestawie (0.00 s)

Dany wynik pokazuje domyślną wartość zmiennej interaktywnej_timeout. Ta wartość określa czas trwania w sekundach, że serwer czeka na aktywność podczas aktywnej sesji przed jej zakończeniem.

Możemy również pobrać wartość zmiennej Wait_Timeout jako:

Mysql> Pokaż globalne zmienne, takie jak „Wait_timeout”;

Wynikowy stół:

+---------------+-------+
|. Zmienna_nazwa | Wartość |
+---------------+-------+
|. Wait_timeout | 28800 |
+---------------+-------+
1 wiersz w zestawie (0.01 s)

Ta zmienna ustawia czas, w którym serwer MySQL czeka na aktywność w sesji nieinteraktywnej.

Napraw błąd utraconego MySQL, aktualizując zmienne limitu czasu

Aby naprawić ten typ błędu, możemy zaktualizować wartości dwóch zmiennych omówionych wcześniej. Możemy uruchomić zapytanie, jak pokazano następująco:

mysql> set @@ global.Interactive_timeout = 43200;
Zapytanie OK, 0 dotkniętych wierszy (0.00 s)

Poprzednie polecenie powinno zaktualizować wartość zmiennej interaktywnej_timeout do 43200 sekund.

Aby zaktualizować parametr Wait_Timeout, uruchom następujące polecenie:

mysql> set @@ global.Wait_timeout = 43200;
Zapytanie OK, 0 dotkniętych wierszy (0.00 s)

Skończyłeś. Możesz spróbować ponownie uruchomić zapytanie w czasie.

Wniosek

W tym poście omówiliśmy przyczynę utraconej błędu połączenia podczas pracy z MySQL i krokami, które możesz podjąć, aby je naprawić. Pamiętaj jednak o swoich zapytaniach lub podziel je na wydajne bloki.

Dziękujemy za przeczytanie i szczęśliwe kodowanie!