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

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Fehler bei der Kommunikationsverbindung

Dies ist eine umschlossene Ausnahme und nicht wirklich interessant. Es ist die Grundursache der Ausnahme, die uns tatsächlich etwas über die Grundursache aussagt. Bitte schauen Sie etwas weiter in den Stacktrace. Die Wahrscheinlichkeit ist groß, dass Sie dann mit einer SQLException: Connection refused konfrontiert werden oder SQLException: Connection timed out .

Wenn dies auch in Ihrem Fall zutrifft, dann sind alle möglichen Ursachen:

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

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

  1. Verifizieren und testen Sie sie mit ping .
  2. DNS aktualisieren oder stattdessen IP-Adresse in JDBC-URL verwenden.
  3. Verifizieren Sie es basierend auf my.cnf von MySQL DB.
  4. Starten Sie es.
  5. Überprüfen Sie, ob mysqld ohne --skip-networking gestartet wird Möglichkeit.
  6. Firewall deaktivieren und/oder Firewall/Proxy konfigurieren, um den Port zuzulassen/weiterzuleiten.

Übrigens (und unabhängig vom eigentlichen Problem) müssen Sie den JDBC-Treiber nicht unbedingt jeder laden getConnection() Forderung. Nur einmal während des Starts ist genug.