sql >> Database teknologi >  >> RDS >> Mysql

'max_user_connections' sat til 200 - får stadig fejl

Hvad angår dit problem med "max forbindelser", kan det være en af ​​tre ting:

1) Serveren har allerede for mange åbne forbindelser. En MySQL-server kan kun håndtere et bestemt antal åbne forbindelser, før den nægter at tillade flere, og denne grænse deles mellem alle brugere af serveren. Det er normalt sat ret højt, selvom det let er muligt for nogen effektivt at DoS en MySQL-server ved at lave en masse forbindelser (men se nedenfor)

2) Din brugerkonto har et begrænset antal tilladte forbindelser i timen - eventuelle yderligere forbindelser inden for den time vil blive afvist. Dette indstilles på en per-bruger basis.

3) Dine brugerkonti har et begrænset antal tilladte åbne forbindelser - eventuelle yderligere forbindelser vil blive afvist. Dette indstilles på en per-bruger basis.

Det er altid vigtigt at læse den fejlmeddelelse, du får returneret ved forbindelsesforsøget, da dette i de fleste tilfælde vil finde den nøjagtige årsag til fejlen.

Hvis din konto har en maksimal grænse for antal forbindelser (scenario #3), vil fejlen være:Kode:

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

Hvor 'mysqldba' ville være dit brugernavn, og den 'aktuelle værdi' er det maksimale antal åbne forbindelser, der er tilladt fra denne bruger.

Hvis din konto har et maksimalt antal forbindelser pr. time grænse (scenario #2), ville fejlen være:Kode:

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

Hvor 'mysqldba' igen ville være dit brugernavn, og den 'aktuelle værdi' er det maksimalt tilladte antal forbindelser pr. time for denne bruger.

Hvis du fik fejlmeddelelsen (kode 1040) angiver, at hele MySQL-serveren er løbet tør for forbindelsespladser - dette er det DoS-scenarie, jeg nævner ovenfor.

Hvad kan du gøre ved det? Ud fra det du har sagt, har du ikke superbrugerrettigheder på denne server, så intet, udover at klage til den SysAdmin, der er ansvarlig for den server. De kan øge det maksimale antal tilladte forbindelser, hvilket kan løse problemet på kort sigt, men hvis en anden, der bruger serveren, opretter et dumt antal databaseforbindelser, ville pladserne bare fyldes op igen. Hvad de sandsynligvis burde gøre, er også at håndhæve en maksimal grænse for åben forbindelse pr. bruger - dette ville forhindre de tunge brugere i at tilstoppe serveren. I en delt server situation som din, ville dette give mest mening - 'power users' ville/bør have deres egen server, eller kunne/bør betale for at øge deres maksimale åbne forbindelser.




  1. Sådan gemmer du html i en mysql-database

  2. Django+Postgres:aktuelle transaktion afbrydes, kommandoer ignoreret indtil slutningen af ​​transaktionsblok

  3. Data Warehousing ETL Data Profiling med Oracle Warehouse Builder

  4. Fejlfinding Ingen sådan fil eller mappe, når du kører `php app/console doctrine:schema:create`