/ / "Serwer MySQL odszedł" po użyciu mail () - php, mysql

"Serwer MySQL odszedł" po użyciu mail () - php, mysql

Mam skrypt php, który jest często wywoływany, który uruchamia krótkie zapytanie do bazy danych i wysyła wiadomość e-mail. Kod bazy danych wykorzystuje funkcje mysql w stylu proceduralnym, takie jak mysql_query()itp. E-mail jest wysyłany za pomocą mail() funkcjonować.

W 99% przypadków działało bez problemu. Czasami jednak otrzymuję komunikat o błędzie "Serwer MySQL zniknął". Oryginalna kolejność wykonania polegała na wysłaniu pierwszego maila mail(), a następnie uruchom krótkie zapytanie o aktualizację. Zmieniłem kolejność wykonywania, aby najpierw uruchomić zapytanie i zadzwonić mail() ostatnio, a teraz nigdy nie mam problemu.

Problem: mail() w jakiś sposób zakłóca połączenie z bazą danych sporadycznie. Ktoś ma jakieś pomysły, dlaczego? Jak powinien wyglądać problem?

Więcej informacji:

Gdy skrypt poczty sprawi, że "serwer zniknął"błąd, zapytanie zawsze kończy się niepowodzeniem z tym błędem, jeśli spróbuję ponownie uruchomić skrypt. Jeśli jednak uruchomię dokładnie to samo zapytanie w phpMyAdminie, zostanie ono wykonane bez problemu, a następnie skrypt poczty będzie działał ponownie.

Poza tym skrypt działał przez wiele miesięcy bez żadnychproblemy - niedawno rozpoczął się błąd "serwer zniknął", bez żadnych zmian w kodzie ani konfiguracji z naszej strony. Ponadto skrypt działał bezproblemowo przez dłuższy czas, gdy witryna zyskiwała ponad dwukrotnie więcej ruchu niż obecnie, więc nie miała żadnych problemów w czasie, gdy serwer obsługiwał wiele innych połączeń z bazami danych, itp., niż jest teraz.

Wersja PHP: 5.3.3

Wersja MySQL: 5.0.77-log Dystrybucja źródeł

Baza danych znajduje się na innym serwerze niż skrypt webserver / php (nie łączący się z localhostem)

Zarówno serwer WWW jak i serwer bazy danych to Red Hat Enterprise Linux Server w wersji 5.6 (Tikanga)

Odpowiedzi:

0 dla odpowiedzi № 1

Prawdopodobnie masz zbyt krótkie ustawienie czasu oczekiwania,
oficjalna dokumentacja objęła cały scenariusz

PS AFAIK, nie ma mysql server has went away,
ale mysql server has gone away