Mysql
 sql >> Baza danych >  >> RDS >> Mysql

PHP Mysql PDO:Błąd ogólny:serwer MySQL 2006 zniknął

Inne typowe przyczyny błędu serwera MySQL to:

  • Ty (lub administrator bazy danych) zabiłeś działający wątek za pomocą instrukcji KILL lub polecenia mysqladmin kill.

  • Próbowałeś uruchomić zapytanie po zamknięciu połączenia z serwerem. Wskazuje to na błąd logiczny w aplikacji, który należy poprawić.

  • Aplikacja kliencka działająca na innym hoście nie ma niezbędnych uprawnień do łączenia się z serwerem MySQL z tego hosta.

  • Upłynął limit czasu połączenia TCP/IP po stronie klienta. Może się to zdarzyć, jeśli używasz poleceń:mysql_options(..., MYSQL_OPT_READ_TIMEOUT,...) lub mysql_options(..., MYSQL_OPT_WRITE_TIMEOUT,...). W takim przypadku zwiększenie limitu czasu może pomóc w rozwiązaniu problemu.

  • Napotkałeś limit czasu po stronie serwera i automatyczne ponowne połączenie w kliencie jest wyłączone (flaga ponownego połączenia w strukturze MYSQL jest równa 0).

  • Używasz klienta Windows, a serwer zerwał połączenie (prawdopodobnie dlatego, że wygasł czas oczekiwania) przed wydaniem polecenia.

  • Problem w systemie Windows polega na tym, że w niektórych przypadkach MySQL nie otrzymuje błędu z systemu operacyjnego podczas zapisywania do połączenia TCP/IP z serwerem, ale zamiast tego otrzymuje błąd podczas próby odczytania odpowiedzi z połączenia.

  • Rozwiązaniem tego jest albo wykonanie mysql_ping() na połączeniu, jeśli minęło dużo czasu od ostatniego zapytania (tak robi Connector/ODBC) lub ustawienie wait_timeout na serwerze mysqld tak wysokie, że w praktyce nigdy się nie zdarza na zewnątrz.

  • Możesz również uzyskać te błędy, jeśli wyślesz zapytanie do serwera, które jest niepoprawne lub zbyt duże. Jeśli mysqld otrzyma pakiet, który jest zbyt duży lub niesprawny, zakłada, że ​​coś poszło nie tak z klientem i zamyka połączenie. Jeśli potrzebujesz dużych zapytań (na przykład, jeśli pracujesz z dużymi kolumnami BLOB), możesz zwiększyć limit zapytań, ustawiając zmienną max_allowed_packet serwera, która ma domyślną wartość 4 MB. Może być również konieczne zwiększenie maksymalnego rozmiaru pakietu po stronie klienta. Więcej informacji na temat ustawiania rozmiaru pakietu można znaleźć w sekcji B.5.2.10, „Pakiet za duży”.

  • Instrukcja INSERT lub REPLACE, która wstawia bardzo wiele wierszy, może również powodować tego rodzaju błędy. Każda z tych instrukcji wysyła pojedyncze żądanie do serwera, niezależnie od liczby wierszy do wstawienia; w ten sposób często można uniknąć błędu, zmniejszając liczbę wierszy wysyłanych na WSTAWIANIE lub ZAMIEŃ.

  • Stracisz również połączenie, jeśli wysyłasz pakiet 16 MB lub większy, jeśli twój klient jest starszy niż 4.0.8, a serwer ma wersję 4.0.8 lub wyższą lub na odwrót.

  • Ten błąd można również zobaczyć, jeśli wyszukiwanie nazwy hosta nie powiedzie się (na przykład, jeśli serwer DNS, na którym opiera się Twój serwer lub sieć, przestanie działać). Dzieje się tak, ponieważ MySQL jest zależny od systemu hosta w zakresie rozpoznawania nazw, ale nie ma możliwości sprawdzenia, czy działa — z punktu widzenia MySQL problem jest nie do odróżnienia od jakiegokolwiek innego limitu czasu sieci.

  • Możesz również zobaczyć błąd serwera MySQL, jeśli MySQL został uruchomiony z opcją --skip-networking.

  • Inny problem z siecią, który może powodować ten błąd, występuje, gdy port MySQL (domyślny 3306) jest blokowany przez zaporę sieciową, uniemożliwiając w ten sposób jakiekolwiek połączenia z serwerem MySQL.

  • Ten błąd można również napotkać w przypadku aplikacji, które rozwidlają procesy podrzędne, z których wszystkie próbują użyć tego samego połączenia z serwerem MySQL. Można tego uniknąć, używając oddzielnego połączenia dla każdego procesu podrzędnego.

  • Napotkałeś błąd, w którym serwer przestał działać podczas wykonywania zapytania.

Sprawdź ten link:Gone Away




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jak skopiować schemat w mysql za pomocą java

  2. Jak mogę połączyć się z MySQL w Pythonie 3 w systemie Windows?

  3. Uzyskaj rekordy z najwyższym/najmniejszym <cokolwiek> na grupę

  4. LocalDateTime , ZonedDateTime i znacznik czasu

  5. To zapytanie SELECT zajmuje 180 sekund, aby zakończyć