Quando un'applicazione non riesce a chiudere una connessione inutilizzata, un wait_timeout
basso value ti aiuta a evitare di superare il numero consentito di connessioni. Utilizzare le seguenti istruzioni per impostare questo vakue:
-
Accedi al tuo server utilizzando Secure Shell® (SSH).
-
Usa il comando sudo per modificare
my.cnf
, il file di configurazione di MySQL®.$ sudo vi /etc/my.cnf
-
Individua la configurazione del timeout e apporta le modifiche che si adattano al tuo server.
wait_timeout = 28800 interactive_timeout = 28800
-
Il
interactive_timeout
value non influisce sulle connessioni delle applicazioni Web. Unwait_timeout
basso è una normale best practice. -
Gli ambienti PHP senza stato funzionano bene con un timeout di 60 secondi o meno. Le applicazioni che utilizzano un pool di connessioni (Java®, .NET® e così via) devono modificare il
wait_timeout
valore in modo che corrisponda alle impostazioni del pool di connessioni. Il valore predefinito8 hours = 28800
secondi funziona bene con pool di connessione configurati correttamente. -
Configura il
wait_timeout
essere leggermente più lungo della durata di connessione prevista per il pool di connessioni dell'applicazione come controllo di sicurezza. Prendi in considerazione la modifica del valore online perché non richiede il riavvio di MySQL e puoi regolarlo mentre il server è in esecuzione senza incorrere in tempi di inattività. Modifica il valore inset global wait_timeout=60
e tutte le sessioni appena create lo ereditano. Assicurati di preservare l'impostazione inmy.cnf
. Qualsiasi connessione esistente deve raggiungere il vecchio valore diwait_timeout
se l'applicazione ha abbandonato la connessione. Se disponi di lavori di reporting che eseguono un'elaborazione locale più lunga durante una transazione, potresti prendere in considerazione la possibilità di problemi di questo tiposet session wait_timeout=3600
al momento della connessione.
-
-
Salva le modifiche ed esci dall'editor.
-
Utilizzare il comando seguente per riavviare MySQL e applicare le modifiche, se necessarie:
$ sudo /etc/init.d/mysql restart