it-swarm.it

Quanto dura "troppo a lungo" perché MySQL Connections possa dormire?

Ho effettuato l'accesso al mio server per verificare lo stato del database e ho notato sul SHOW PROCESSLIST; che ci sono molte connessioni dormienti molto vecchie.

enter image description here Quale durata deve essere il limite di tempo prima che la connessione venga interrotta?

Come posso impostare il limite di tempo in MySQL 5.0.51a-3ubuntu5.4?

Nota:

Sto usando PHP 5.2.xe symfony framework 1.2.

39
Patrick

mysqld eseguirà il timeout delle connessioni al database in base a due opzioni del server:

Entrambi sono 28.800 secondi (8 ore) per impostazione predefinita.

Puoi impostare queste opzioni in /etc/my.cnf

Se le connessioni sono persistenti (aperte tramite mysql_pconnect) potresti abbassare questi numeri a qualcosa di ragionevole come 600 (10 minuti) o addirittura 60 (1 minuto). Oppure, se la tua app funziona bene, puoi lasciare l'impostazione predefinita. Questo lo devi decidere tu.

È necessario impostare questi come segue in my.cnf (diventa effettivo dopo il riavvio di mysqld):

[mysqld]
interactive_timeout=180
wait_timeout=180

Se non si desidera riavviare mysql, eseguire questi due comandi:

SET GLOBAL interactive_timeout = 180;
SET GLOBAL wait_timeout = 180;

Questo non chiuderà le connessioni già aperte. Ciò causerà la chiusura di nuove connessioni in 180 secondi.

54
RolandoMySQLDBA