Je me suis connecté sur mon serveur pour vérifier l'état de la base de données et j'ai remarqué SHOW PROCESSLIST;
qu'il y avait un grand nombre de connexions en attente très anciennes.
Quelle doit être la durée limite de connexion avant que la connexion ne soit supprimée?
Comment définir la limite de temps dans MySQL 5.0.51a-3ubuntu5.4?
Remarque:
J'utilise PHP 5.2.x et le framework Symfony 1.2.
Réponses:
mysqld
les connexions à la base de données expireront en fonction de deux options de serveur:Les deux durent 28 800 secondes (8 heures) par défaut.
Vous pouvez définir ces options dans
/etc/my.cnf
Si vos connexions sont persistantes (ouvertes via
mysql_pconnect
), vous pouvez réduire ces chiffres à quelque chose de raisonnable, par exemple 600 (10 minutes) ou même 60 (1 minute). Ou, si votre application fonctionne correctement, vous pouvez laisser la valeur par défaut. C'est à toi de décider.Vous devez les définir comme suit dans
my.cnf
(prend effet après avoirmysqld
été redémarré):Si vous ne voulez pas redémarrer mysql, lancez ces deux commandes:
Cela ne fermera pas les connexions déjà ouvertes. Cela entraînera la fermeture de nouvelles connexions en 180 secondes.
la source
wait_timeout=180
?