Lorsqu'une application ne parvient pas à fermer une connexion inutilisée, un faible wait_timeout
La valeur vous aide à éviter de dépasser le nombre autorisé de connexions. Utilisez les instructions suivantes pour définir ce vakue :
-
Connectez-vous à votre serveur en utilisant Secure Shell® (SSH).
-
Utilisez la commande sudo pour modifier
my.cnf
, le fichier de configuration MySQL®.$ sudo vi /etc/my.cnf
-
Localisez la configuration du délai d'attente et effectuez les ajustements qui correspondent à votre serveur.
wait_timeout = 28800 interactive_timeout = 28800
-
Le
interactive_timeout
La valeur n'affecte aucune connexion d'application Web. Un faiblewait_timeout
est une bonne pratique normale. -
Les environnements PHP sans état fonctionnent bien avec un délai d'attente de 60 secondes ou moins. Les applications qui utilisent un pool de connexions (Java®, .NET®, etc.) doivent ajuster le
wait_timeout
valeur pour correspondre à leurs paramètres de pool de connexions. La valeur par défaut8 hours = 28800
secondes fonctionne bien avec des pools de connexions correctement configurés. -
Configurez le
wait_timeout
être légèrement plus longue que la durée de vie de connexion attendue du pool de connexions d'application par mesure de sécurité. Envisagez de modifier la valeur en ligne car cela ne nécessite pas de redémarrage de MySQL et vous pouvez l'ajuster pendant que le serveur fonctionne sans entraîner de temps d'arrêt. Changez la valeur enset global wait_timeout=60
, et toutes les sessions nouvellement créées en héritent. Assurez-vous de conserver le paramètre dansmy.cnf
. Toutes les connexions existantes doivent atteindre l'ancienne valeur dewait_timeout
si l'application a abandonné la connexion. Si vous avez des tâches de création de rapports qui effectuent un traitement local plus long pendant une transaction, vous pouvez envisager de faire en sorte que ces tâches émettentset session wait_timeout=3600
lors de la connexion.
-
-
Enregistrez les modifications et quittez l'éditeur.
-
Utilisez la commande suivante pour redémarrer MySQL et appliquer les modifications, si nécessaire :
$ sudo /etc/init.d/mysql restart