Mysql
 sql >> Datenbank >  >> RDS >> Mysql

JPA EntityManager konnte nicht für Transaktion geöffnet werden; Die verschachtelte Ausnahme ist javax.persistence.PersistenceException

Es liegt eine CommunicationsException vor:Kommunikationsverbindungsfehler.

Wenn Sie eine SQLException erhalten:Verbindung verweigert oder Zeitüberschreitung der Verbindung oder eine MySQL-spezifische

CommunicationsException: Communications link failure

dann bedeutet es, dass die DB überhaupt nicht erreichbar ist. Dies kann eine oder mehrere der folgenden Ursachen haben:

  • IP-Adresse oder Hostname in JDBC-URL ist falsch.
  • Hostname in JDBC-URL wird vom lokalen DNS-Server nicht erkannt.
  • Die Portnummer fehlt oder ist in der JDBC-URL falsch.
  • DB-Server ist ausgefallen.
  • Der DB-Server akzeptiert keine TCP/IP-Verbindungen.
  • Der DB-Server hat keine Verbindungen mehr.
  • Etwas zwischen Java und DB blockiert Verbindungen, z.B. eine Firewall oder ein Proxy.

Um das eine oder andere zu lösen, folgen Sie den folgenden Ratschlägen:

  • Überprüfen und testen Sie sie mit Ping.
  • DNS aktualisieren oder stattdessen IP-Adresse in JDBC-URL verwenden.
  • Verifizieren Sie es basierend auf my.cnf von MySQL DB.
  • Starten Sie die DB.
  • Überprüfen Sie, ob mysqld ohne die Option --skip-networking gestartet wird.
  • Starte die DB neu und korrigiere deinen Code entsprechend, dass er Verbindungen endgültig schließt.
  • Firewall deaktivieren und/oder Firewall/Proxy konfigurieren, um den Port zuzulassen/weiterzuleiten.

Quelle:Weitere Details