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

Błąd MySQL Za dużo połączeń

Dostawcy hostingu współdzielonego generalnie zezwalają na dość małą liczbę jednoczesnych połączeń dla tego samego użytkownika.

To, co robi Twój kod, to :

  • otwórz połączenie z serwerem MySQL
  • zrób to (generowanie strony)
  • zamknij połączenie na końcu strony.

Ostatni krok, wykonany na końcu strony, nie jest obowiązkowy :(cytując mysql_close instrukcja obsługi) :

Pamiętaj jednak, że prawdopodobnie i tak nie powinieneś używać trwałych połączeń...

Dwie wskazówki:

  • użyj mysql_connect w mysql_pconnect (już w porządku)
  • Ustaw czwarty parametr mysql_connect na false (już w porządku, ponieważ jest to wartość domyślna) :(cytując instrukcję) :


Co zatem może spowodować problem?

Być może próbujesz uzyskać dostęp do kilku stron równolegle (na przykład używając wielu kart w przeglądarce) , który będzie symulował kilku użytkowników korzystających z witryny w tym samym czasie ?

Jeśli masz wielu użytkowników korzystających z witryny w tym samym czasie, a kod między mysql_connect a zamknięcie połączenia zajmuje dużo czasu, oznacza to otwarcie wielu połączeń w tym samym czasie... I osiągniesz limit :-(

Mimo to, ponieważ jesteś jedynym użytkownikiem aplikacji, biorąc pod uwagę, że możesz mieć do 200 jednoczesnych połączeń, dzieje się coś dziwnego...


Cóż, myślę o „zbyt wielu połączeniach " i "max_connections "...

Jeśli dobrze pamiętam, max_connections nie ogranicza liczby połączeń ty można otworzyć na serwer MySQL, ale całkowita liczba połączeń który może zostać otwarty na tym serwerze, przez każdego, kto się z nim łączy .

Cytując dokumentację MySQL na temat Zbyt wiele połączeń :

Tak więc problem może nie pochodzić od Ciebie ani od Twojego kodu (co właściwie wygląda dobrze) :może „po prostu” być tak, że nie jesteś jedyną osobą, która próbuje połączyć się z tym serwerem MySQL (pamiętaj, „hosting współdzielony”) i zbyt wiele osób korzysta z niego w tym samym czasie...

... I jeśli mam rację i to właśnie , nic nie możesz zrobić, aby rozwiązać ten problem:tak długo, jak na tym serwerze jest zbyt wiele baz danych/użytkowników i to max_connection jest ustawiony na 200, będziesz dalej cierpieć...


Na marginesie:zanim wrócimy do GoDaddy i zapytamy ich o to, byłoby miło, gdyby ktoś mógł potwierdzić to, co właśnie powiedziałem ^^



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Łączenie się z MySQL powoduje błąd Nie znaleziono nazwy źródła danych i nie określono domyślnego sterownika

  2. Instrukcja MySQL PREPARE w procedurach składowanych

  3. Jak zmapować zapytanie natywne do POJO, gdy nie mam żadnej jednostki w moim projekcie?

  4. (mysql, php) Jak uzyskać wartość pola auto_increment przed wstawieniem danych?

  5. Określanie hasła w ciągu połączenia MySQL