Article ID: 769, created on Jan 22, 2014, last review on May 11, 2014

  • Applies to:
  • Plesk for Linux/Unix

Sintomi

I seguenti errori si verificano occasionalmente nell'interfaccia di Parallels Plesk Panel:

Unable to connect to database: Too many connections

SQLSTATE[08004] [1040] Too many connections

Causa

Questo errore significa che il limite di connessioni simultanee al server MySQL è stato raggiunto e che le nuove connessioni al server non possono essere stabilite in questo momento.

Soluzione

Esistono due modi per risolvere il problema. Il primo è quello di aumentare il limite di connessioni e il secondo è determinare la causa dell'errore "Troppe connessioni" e di utilizzare tali informazioni per ridurre l'utilizzo del server MySQL.

Lo stato del server MySQL può essere controllato mediante l'utility "mysqladmin". Ad esempio, per sapere qual è il numero di connessioni correnti al server, usare:

# mysqladmin -uadmin -p`cat /etc/psa/.psa.shadow` extended-status | grep Max_used_connections
| Max_used_connections | 11 |


Le impostazioni dei limiti di connessione attuali si possono trovare tramite:

# mysqladmin -uadmin -p`cat /etc/psa/.psa.shadow ` variables | grep 'max.*connections'
| max_connections | 100 |
| max_user_connections | 0


Nell'esempio sopra, il numero massimo di connessioni al server ("max_connections") è impostato su 100. Il numero massimo di connessioni per utente ("max_user_connections") è zero, che vuol dire illimitato. I valori MySQL predefiniti possono essere ridefiniti in /etc/my.cnf (/etc/mysql/my.cnf su Debian/Ubuntu). Per esempio:

[mysqld]
set-variable=max_connections=150
set-variable=max_user_connections=20


Riavviare MySQL dopo che my.cnf sia modificato:
/etc/init.d/mysqld restart


Tenere presente che impostare il limite di connessioni su un valore molto elevato (oltre 300), potrebbe avere ripercussioni sulle prestazioni del server. Conviene quindi trovare e rettificare la causa dell'elevato utilizzo del server MySQL. È possibile controllare quali utenti/richieste rallentano MySQL su tutte le connessioni attuali con il seguente comando:

# mysqladmin -uadmin -p`cat /etc/psa/.psa.shadow` processlist

a914db3fdc7a53ddcfd1b2db8f5a1b9c 29d1e90fd304f01e6420fbe60f66f838 56797cefb1efc9130f7c48a7d1db0f0c

Email subscription for changes to this article
Save as PDF