Mysql
 sql >> Base de données >  >> RDS >> Mysql

Impossible d'ouvrir JPA EntityManager pour la transaction ; l'exception imbriquée est javax.persistence.PersistenceException

Il y a CommunicationsException :Échec de la liaison de communication.

Si vous obtenez une SQLException :Connexion refusée ou Connexion expirée ou spécifique à MySQL

CommunicationsException: Communications link failure

cela signifie que la base de données n'est pas du tout accessible. Cela peut avoir une ou plusieurs des causes suivantes :

  • L'adresse IP ou le nom d'hôte dans l'URL JDBC est incorrect.
  • Le nom d'hôte dans l'URL JDBC n'est pas reconnu par le serveur DNS local.
  • Le numéro de port est manquant ou erroné dans l'URL JDBC.
  • Le serveur de base de données est en panne.
  • Le serveur de base de données n'accepte pas les connexions TCP/IP.
  • Le serveur de base de données n'a plus de connexions.
  • Quelque chose entre Java et DB bloque les connexions, par ex. un pare-feu ou un proxy.

Pour résoudre l'un ou l'autre, suivez les conseils suivants :

  • Vérifiez et testez-les avec ping.
  • Actualisez le DNS ou utilisez plutôt l'adresse IP dans l'URL JDBC.
  • Vérifiez-le en fonction de my.cnf de la base de données MySQL.
  • Démarrez la base de données.
  • Vérifiez si mysqld est démarré sans l'option --skip-networking.
  • Redémarrez la base de données et corrigez votre code en conséquence pour qu'il ferme enfin les connexions.
  • Désactivez le pare-feu et/ou configurez le pare-feu/proxy pour autoriser/transférer le port.

Source :Plus de détails