Come correggere l'errore MySQL: troppe connessioni

Introduzione all'errore MySQL: troppe connessioni

Quando un'applicazione web (sito, blog, forum, ecc.) è soggetta a un elevato numero di accessi, ovvero a un gran numero di visitatori, ciò si traduce in un maggiore consumo di risorse del server. Se l'applicazione utilizza un database MySQL e le query sono molto numerose ( a causa di una programmazione web scadente o di un elevato numero di utenti ), MySQL potrebbe visualizzare il seguente errore:

mysqli_connect(): (HY000/1040): Too many connections

Cosa significa l'errore MySQL: Too Many Connections?

Significa che troppe richieste stanno arrivando a MySQL, più di quanto possa accettare, più di quanto possa mettere in coda o aspettare.

Come risolverlo?

Semplice, dobbiamo aumentare il limite massimo di richieste (connessioni) che MySQL supporta.

Ti darò due opzioni per risolvere questo problema:

1. Modifichiamo il file /etc/mysql/my.cfg:

nano /etc/mysql/my.cfg

In esso mettiamo quanto segue sotto dove dice [mysql]:

max_connections = 500 max_user_connections = 500

Ciò aumenterà il numero massimo di connessioni da 100 (che è l'impostazione predefinita) a 500.

Salviamo ed usciamo, quindi riavviamo il servizio MySQL e il gioco è fatto. Questo cambiamento è permanente.

2. Un altro modo per risolvere questo problema è modificare il limite massimo, ma utilizzando una query MySQL.

Mostriamo prima il limite attuale:

mysql --user="root" --password="PASSWORD" --execute='SHOW VARIABLES LIKE "max_connections";'

Questo ci mostrerà qualcosa del genere:

+ ----------------- + ------- + | Nome_variabile | Valore | + ----------------- + ------- + | max_connections | 151 | + ----------------- + ------- +

In altre parole, il limite attuale è di 151 connessioni, beh, alziamolo a 500 tramite una query:

mysql --user="root" --password="PASSWORD" --execute='SET GLOBAL max_connections = 500;'

Pronto!

Il problema in questo modo è che quando il servizio viene riavviato, questa configurazione viene persa.

Per compensare questo dettaglio puoi creare uno script bash che controlli ogni X periodo di tempo, o anche aggiungere la riga al blocco di avvio o riavvio del demone 

Ma allora perché voglio conoscere questa seconda opzione? ... beh, questo è quello che ho detto. Ma un mese fa un server Ubuntu ignorava il metodo n. 2, quindi... in casi estremi di sistema operativo stupido, abbiamo questa seconda opzione che funziona altrettanto bene 


Aggiungi come fonte preferita in Google