Risolvere l’errore “Troppe connessioni” su MySQL o MariaDB

L’errore MySQL “Troppe connessioni” si verifica quando a un database MySQL vengono inviate più query di quante possano essere elaborate. L’errore può essere risolto impostando un nuovo numero di connessioni massime nel file di configurazione o globalmente.

Come avviene l’errore “Troppe connessioni” su MySQL?

Un database può gestire solo un numero limitato di query alla volta. Se il massimo stabilito viene superato, MySQL visualizza il messaggio di errore sopra citato. Questo accade, ad esempio, quando uno script PHP cerca di stabilire troppe connessioni simultanee al database relazionale. Se state usando un’applicazione web che usa un database MySQL, è possibile che l’errore “Troppe connessioni” di MySQL si verifichi quando vi sono molte richieste.

Impostare un nuovo numero massimo di connessioni

La variabile di sistema max_connections determina il numero di connessioni che MySQL o MariaDB può accettare. Il valore predefinito è 151 connessioni, il che permette 150 connessioni normali più una connessione dall’account SUPER. Quest’ultimo è un privilegio di MySQL che garantisce i permessi di amministrazione all’utente.

La prima cosa da decidere è quale nuovo valore massimo si vuole impostare per max_connections. Vi sono diversi fattori da considerare quando si aumenta il numero di connessioni MySQL/MariaDB. Il numero massimo che può essere supportato dal sistema dipenderà infatti da:

  • La quantità di RAM disponibile.
  • Quanta RAM è richiesta da ogni connessione (le query semplici richiederanno meno RAM delle connessioni più laboriose).
  • Il tempo di risposta accettabile.

Secondo la documentazione di MySQL, la maggior parte dei sistemi Linux dovrebbe essere in grado di supportare da 500 a 1.000 connessioni senza difficoltà.

Cambiare la variabile max_connections

La variabile max_connections può essere cambiata in due modi:

Aggiornando il file my.cnf, di modo che il nuovo valore sia usato se il server MySQL/MariaDB viene riavviato.

Usando il comando SET GLOBAL per aggiornare il valore sul server MySQL/MariaDB in esecuzione. In questo caso, non c’è bisogno di riavviare MySQL/MariaDB, quindi non dovrete prevedere alcun tempo di inattività del vostro database.

Visualizzare il numero di connessioni su MySQL

Per controllare il numero attuale di max_connections, accedete al client a riga di comando MySQL/MariaDB con il seguente comando:

mysql -u root -p

A questo punto, usate il seguente comando:

SHOW variables;

Questo produrrà una lista di tutte le variabili impostate per MySQL/MariaDB. Scorrete la lista per trovare il valore di max_connections.

Aggiornare il file my.cnf

Aprite il file /etc/my.cnf e modificatelo con il seguente comando:

sudo nano /etc/my.cnf

Direttamente sotto la prima riga, visualizzerete la seguente voce:

[mysqld]

Aggiungete una riga alla seguente voce:

max_connections=[nuovo numero massimo desiderato]

Ad esempio, per impostare max_connections a 200, le prime due righe del vostro file di configurazione dovrebbero apparire come riportato di seguito:

[mysqld]
max_connections=200

Salvate il file ed uscite.

Impostare il numero di connessioni a livello globale

È anche possibile impostare il numero massimo di connessioni per il vostro database a livello globale. Per procedere dovrete per prima cosa accedere al client a riga di comando MySQL/MariaDB usando il seguente comando:

mysql -u root -p

Adattate il nuovo numero massimo di vostra scelta del nuovo valore max_connections usando il comando riportato di seguito:

SET GLOBAL max_connections=[nuovo numero massimo desiderato];

Ad esempio, per impostare max_connections a 200, il comando da usare è:

SET GLOBAL max_connections=200;

Infine, uscite da MySQL/MariaDB con il comando:

quit;
Hosting WordPress
Gestisci WordPress al meglio grazie all'IA
  • Funzioni IA per generare e modificare il tuo sito web
  • Aggiornamenti automatici e sempre personalizzabili
  • Scansioni di sicurezza giornaliere, protezione DDoS e disponibilità del 99,98%
Hai trovato questo articolo utile?
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.
Page top