sql >> Database >  >> RDS >> Mysql

'max_user_connections' ingesteld op 200 - krijg nog steeds een foutmelding

Wat betreft uw "max verbindingen"-probleem, het kan een van de volgende drie dingen zijn:

1) De server heeft al te veel open verbindingen. Een MySQL-server kan slechts een bepaald aantal open verbindingen aan voordat er meer worden geweigerd, en deze limiet wordt gedeeld door alle gebruikers van de server. Het is meestal vrij hoog ingesteld, hoewel het voor iemand gemakkelijk mogelijk is om een ​​MySQL-server effectief te DoS door veel verbindingen te maken (maar zie hieronder)

2) Uw gebruikersaccount heeft een beperkt aantal toegestane verbindingen per uur - verdere verbindingen binnen dat uur worden geweigerd. Dit wordt per gebruiker ingesteld.

3) Uw gebruikersaccounts hebben een beperkt aantal toegestane open verbindingen - verdere verbindingen worden geweigerd. Dit wordt per gebruiker ingesteld.

Het is altijd belangrijk om het foutbericht te lezen dat u krijgt bij de verbindingspoging, omdat dit in de meeste gevallen de exacte reden voor het mislukken aangeeft.

Als uw account een maximum aantal verbindingen heeft (scenario #3), zou de fout zijn:Code:

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

Waarbij 'mysqldba' uw gebruikersnaam zou zijn en de 'huidige waarde' het maximale aantal open verbindingen van deze gebruiker.

Als uw account een maximum aantal verbindingen per uur heeft (scenario #2), zou de fout zijn:Code:

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

Waar, nogmaals, 'mysqldba' uw gebruikersnaam zou zijn, en de 'huidige waarde' is het maximale aantal verbindingen per uur dat voor deze gebruiker is toegestaan.

Als u de foutmelding (code 1040) krijgt, geeft dit aan dat de hele MySQL-server geen verbindingsslots meer heeft - dit is het DoS-scenario dat ik hierboven vermeld.

Wat kun je eraan doen? Van wat je hebt gezegd, heb je geen superuser-rechten op deze server, dus niets, behalve klagen bij de SysAdmin die verantwoordelijk is voor die server. Ze zouden het maximale aantal toegestane verbindingen kunnen verhogen, wat het probleem op korte termijn zou kunnen oplossen, maar als iemand anders die de server gebruikt een stom aantal databaseverbindingen maakt, zouden de slots gewoon weer vol raken. Wat ze waarschijnlijk zouden moeten doen, is ook een maximale open verbindingslimiet per gebruiker afdwingen - dit zou voorkomen dat de zware gebruikers de server verstoppen. In een situatie met gedeelde servers zoals de uwe, zou dit het meest logisch zijn - 'hoofdgebruikers' zouden/zouden hun eigen server moeten/zouden hebben, of zouden kunnen/moeten betalen om hun maximale open verbindingen te vergroten.




  1. meerdere toegevoegde entiteiten kunnen dezelfde primaire sleutel hebben op database seed

  2. Gegevenstype voor het opslaan van ip-adres in SQL Server

  3. Stel de tekenset en sortering van een database in MariaDB in

  4. MySQL High Availability Framework uitgelegd - Deel III:Falingsscenario's