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

'max_user_connections' impostato su 200 - continua a ricevere l'errore

Per quanto riguarda il tuo problema di "connessioni massime", potrebbe essere una delle tre cose:

1) Il server ha già troppe connessioni aperte. Un server MySQL può gestire solo un numero specifico di connessioni aperte prima di rifiutarsi di consentirne altre e questo limite è condiviso tra tutti gli utenti del server. Di solito è impostato su un valore piuttosto alto, anche se è facilmente possibile per qualcuno eseguire efficacemente il DoS su un server MySQL effettuando molte connessioni (ma vedi sotto)

2) Il tuo account utente ha un numero limitato di connessioni consentite all'ora - qualsiasi ulteriore connessione entro quell'ora verrebbe rifiutata. Questo è impostato su base per utente.

3) I tuoi account utente hanno un numero limitato di connessioni aperte consentite - qualsiasi ulteriore connessione verrebbe rifiutata. Questo è impostato su base per utente.

È sempre importante leggere il messaggio di errore che viene restituito al tentativo di connessione, poiché nella maggior parte dei casi ciò individuerà il motivo esatto dell'errore.

Se il tuo account ha un numero massimo di connessioni limite (scenario n. 3), l'errore sarebbe:Codice:

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

Dove 'mysqldba' sarebbe il tuo nome utente e il 'valore corrente' è il numero massimo di connessioni aperte consentite da questo utente.

Se il tuo account ha un numero massimo di connessioni per limite orario (scenario n. 2), l'errore sarebbe:Codice:

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

Dove, ancora una volta, 'mysqldba' sarebbe il tuo nome utente e il 'valore corrente' è il numero massimo di connessioni orarie consentite per questo utente.

Se hai ricevuto il messaggio di errore (codice 1040) indica che l'intero server MySQL ha esaurito gli slot di connessione:questo è lo scenario DoS che ho menzionato sopra.

Cosa puoi fare al riguardo? Da quello che hai detto, non hai i privilegi di superutente su questo server, quindi niente, a parte lamentarti con il SysAdmin responsabile di quel server. Potrebbero aumentare il numero massimo di connessioni consentite, il che potrebbe risolvere il problema a breve termine, ma se qualcun altro che utilizza il server sta creando un numero stupido di connessioni al database, gli slot si riempirebbero di nuovo. Quello che probabilmente dovrebbero fare è anche imporre un limite massimo di connessione aperta per utente:ciò impedirebbe agli utenti pesanti di intasare il server. In una situazione di server condiviso come la tua, questo avrebbe più senso:gli "utenti esperti" avrebbero/dovrebbero avere il proprio server o potrebbero/dovrebbero pagare per aumentare il numero massimo di connessioni aperte.