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

Errore MySQL Troppe connessioni

I provider di hosting condiviso generalmente consentono una quantità piuttosto piccola di connessioni simultanee per lo stesso utente.

Quello che fa il tuo codice è :

  • apri una connessione al server MySQL
  • fai le cose (generando la pagina)
  • chiudi la connessione alla fine della pagina.

L'ultimo passaggio, una volta eseguito alla fine della pagina, non è obbligatorio :(citando mysql_close manuale) :

Ma nota che probabilmente non dovresti comunque usare connessioni persistenti...

Due consigli :

  • usa mysql_connect al posto di mysql_pconnect (già OK per te)
  • Imposta il quarto parametro di mysql_connect su false (già OK per te, dato che è il valore predefinito) :(citando il manuale) :


Cosa potrebbe causare il problema, allora?

Forse stai tentando di accedere a più pagine in parallelo (usando più schede nel tuo browser, per esempio) , che simulerà più utenti che utilizzano il sito contemporaneamente?

Se hai molti utenti che utilizzano il sito contemporaneamente e il codice tra mysql_connect e la chiusura della connessione richiede molto tempo, significherà che verranno aperte molte connessioni contemporaneamente... E raggiungerai il limite :-(

Tuttavia, poiché sei l'unico utente dell'applicazione, considerando che sono consentite fino a 200 connessioni simultanee, sta succedendo qualcosa di strano...


Bene, pensando a "troppe connessioni " e "max_connections "...

Se non ricordo male, max_connections non limita il numero di connessioni tu può aprire al server MySQL, ma il numero totale di connessioni che può essere aperto su quel server, da chiunque si colleghi ad esso .

Citando la documentazione di MySQL su Troppe connessioni :

Quindi, in realtà, il problema potrebbe non derivare da te né dal tuo codice (che sembra a posto, in realtà) :potrebbe "semplicemente" essere che tu non sia l'unico a provare a connetterti a quel server MySQL (ricorda, "hosting condiviso") , e che ci sono troppe persone che lo usano contemporaneamente...

... E se ho ragione ed è quello , non c'è niente che tu possa fare per risolvere il problema:fintanto che ci sono troppi database/utenti su quel server e quel max_connection è impostato su 200, continuerai a soffrire...


Come nota a margine:prima di tornare da GoDaddy chiedendoglielo, sarebbe bello se qualcuno potesse convalidare ciò che ho appena detto ^^