sql >> Databasteknik >  >> RDS >> Mysql

'max_user_connections' inställd på 200 - får fortfarande fel

När det gäller ditt problem med "maxanslutningar" kan det vara en av tre saker:

1) Servern har redan för många öppna anslutningar. En MySQL-server kan bara hantera ett visst antal öppna anslutningar innan den vägrar tillåta fler, och denna gräns delas mellan alla användare av servern. Det är vanligtvis ganska högt, även om det lätt är möjligt för någon att effektivt DoS en MySQL-server genom att göra massor av anslutningar (men se nedan)

2) Ditt användarkonto har ett begränsat antal tillåtna anslutningar per timme - alla ytterligare anslutningar inom den timmen kommer att avvisas. Detta ställs in per användare.

3) Dina användarkonton har ett begränsat antal tillåtna öppna anslutningar - eventuella ytterligare anslutningar kommer att avvisas. Detta ställs in per användare.

Det är alltid viktigt att läsa felmeddelandet som du får tillbaka vid anslutningsförsöket, eftersom detta i de flesta fall kommer att fastställa den exakta orsaken till misslyckandet.

Om ditt konto har en gräns för maximalt antal anslutningar (scenario #3), skulle felet vara:Kod:

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

Där "mysqldba" skulle vara ditt användarnamn, och det "aktuella värdet" är det maximala antalet öppna anslutningar som tillåts från denna användare.

Om ditt konto har ett maximalt antal anslutningar per timme gräns (scenario #2), skulle felet vara:Kod:

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

Där, återigen, "mysqldba" skulle vara ditt användarnamn, och det "aktuella värdet" är det maximala antalet anslutningar per timme som tillåts för denna användare.

Om du fick felmeddelandet (kod 1040) indikerar att hela MySQL-servern har slut på anslutningsplatser - detta är DoS-scenariot jag nämner ovan.

Vad kan du göra åt det? Av vad du har sagt, har du inte superanvändarprivilegier på den här servern, så ingenting, förutom att klaga till SysAdmin som är ansvarig för den servern. De kan öka det maximala antalet tillåtna anslutningar, vilket skulle kunna lösa problemet på kort sikt, men om någon annan som använder servern skapar ett dumt antal databasanslutningar skulle platserna bara fyllas upp igen. Vad de förmodligen borde göra är att också upprätthålla en maximal gräns för öppen anslutning per användare - detta skulle hindra de tunga användarna att täppa till servern. I en situation med delad server som din skulle detta vara mest meningsfullt - "power users" skulle/bör ha sin egen server, eller kunde/bör betala för att öka sina maximala öppna anslutningar.




  1. Tvetydig kolumn i INNER JOIN uttalande

  2. Hur man använder förberedda satser i frågor med en IN-sats i PHP

  3. Generera ett slumpmässigt tal i intervallet 1 - 10

  4. Många-till-många-relationer i MySQL