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

„max_user_connections” ustawiono na 200 – nadal pojawia się błąd

Jeśli chodzi o problem z „maksymalną liczbą połączeń”, może to być jedna z trzech rzeczy:

1) Serwer ma już zbyt wiele otwartych połączeń. Serwer MySQL może obsłużyć tylko określoną liczbę otwartych połączeń przed odmową zezwolenia na więcej, a ten limit jest dzielony między wszystkich użytkowników serwera. Zwykle jest ustawiony dość wysoko, chociaż łatwo jest komuś skutecznie DoS serwer MySQL, wykonując wiele połączeń (ale zobacz poniżej)

2) Twoje konto użytkownika ma ograniczoną liczbę dozwolonych połączeń na godzinę - wszelkie dalsze połączenia w ciągu tej godziny zostaną odrzucone. Jest to ustawiane dla każdego użytkownika.

3) Twoje konta użytkowników mają ograniczoną liczbę dozwolonych otwartych połączeń - wszelkie dalsze połączenia zostaną odrzucone. Jest to ustawiane dla każdego użytkownika.

Zawsze ważne jest, aby przeczytać komunikat o błędzie, który zostanie zwrócony przy próbie połączenia, ponieważ w większości przypadków wskaże to dokładny powód niepowodzenia.

Jeśli Twoje konto ma limit maksymalnej liczby połączeń (scenariusz nr 3), błąd będzie wyglądał następująco:Kod:

ERROR 1226 (42000): User 'mysqldba' has exceeded the 'max_user_connections' resource (current value: 1) 

Gdzie „mysqldba” będzie Twoją nazwą użytkownika, a „bieżąca wartość” to maksymalna liczba otwartych połączeń dozwolonych przez tego użytkownika.

Jeśli Twoje konto ma limit maksymalnej liczby połączeń na godzinę (scenariusz nr 2), błąd będzie wyglądał następująco:Kod:

ERROR 1226 (42000): User 'mysqldba' has exceeded the 'max_connections_per_hour' resource (current value: 1) 

Gdzie po raz kolejny „mysqldba” będzie Twoją nazwą użytkownika, a „bieżąca wartość” to maksymalna dozwolona liczba połączeń na godzinę dla tego użytkownika.

Jeśli otrzymasz komunikat o błędzie (kod 1040) wskazuje, że w całym serwerze MySQL zabrakło gniazd połączeń - jest to scenariusz DoS, o którym wspomniałem powyżej.

Co możesz z tym zrobić? Z tego, co powiedziałeś, nie masz uprawnień superużytkownika na tym serwerze, więc nic poza skargą do SysAdmina odpowiedzialnego za ten serwer. Mogą zwiększyć maksymalną dozwoloną liczbę połączeń, co może rozwiązać problem krótkoterminowo, ale jeśli ktoś inny korzystający z serwera tworzy głupią liczbę połączeń z bazą danych, gniazda po prostu zapełnią się ponownie. To, co prawdopodobnie powinni zrobić, to również wymusić maksymalny limit otwartych połączeń na użytkownika - to powstrzymałoby wielu użytkowników przed zapychaniem serwera. W sytuacji z serwerem współdzielonym, takim jak twoja, byłoby to najbardziej sensowne — „zaawansowani użytkownicy” mieliby/powinni mieć własny serwer lub mogli/powinni zapłacić, aby zwiększyć maksymalną liczbę otwartych połączeń.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. BŁĄD 1062 (23000):Zduplikowany wpis „2147483647” dla klucza „PRIMARY”

  2. Wiele tabel MySQL do json_encode

  3. Jak wstawić bardzo dużą liczbę rekordów do bazy danych MySql tak szybko, jak to możliwe?

  4. Praktyki pulowania połączeń JDBC MySql w celu uniknięcia wyczerpania puli połączeń

  5. jak mogę stworzyć system tagowania używając php i mysql?