Maison >base de données >tutoriel mysql >Pourquoi est-ce que je reçois « com.mysql.jdbc.exceptions.jdbc4.CommunicationsException : Échec du lien de communication » dans Mybatis et Spring ?
Problème :
Lors de la mise à jour d'un enregistrement dans MySQL à l'aide de Mybatis et Spring, une exception est rencontré, indiquant une défaillance de la liaison de communication causée par des erreurs de lecture de socket :
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet successfully received from the server was 18,940 milliseconds ago. The last packet sent successfully to the server was 18,918 milliseconds ago.
Cause :
Les connexions MySQL expirent avant que le pool de connexions ne les reconnaisse.
Solution :
Pour résoudre ce problème, plusieurs approches peuvent être pris :
Augmentez la valeur du délai d'attente dans le fichier de configuration MySQL (my.ini) :
Augmentez le paramètre wait_timeout dans le fichier de configuration MySQL (mon .ini) pour prolonger le temps d'inactivité autorisé pour les connexions.
Réduire Temps d'inactivité dans le pool de connexions :
Configurez le pool de connexions pour supprimer les connexions avant que MySQL ne les ferme. Ceci peut être réalisé en définissant une valeur inférieure pour les paramètres de temps minIdle et maxIdle.
Ajouter une requête de validation de connexion :
Ajouter une requête de validation à la configuration du pool de connexions. Cette requête garantit que le pool teste chaque connexion avant de l'émettre. Cependant, cette approche peut introduire une surcharge de performances.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!