Sie haben also ein
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Fehler bei der Kommunikationsverbindung
java.net.ConnectException:Verbindung abgelehnt
Ich zitiere aus dieser Antwort die auch ein schrittweises MySQL+JDBC-Tutorial enthält:
Wenn Sie eine SQLException: Connection refused
erhalten oder Connection timed out
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:
- Verifizieren 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 option
gestartet wird . - Starte die DB neu und korrigiere deinen Code entsprechend, dass er Verbindungen
finally
schließt . - Firewall deaktivieren und/oder Firewall/Proxy konfigurieren, um den Port zuzulassen/weiterzuleiten.
Siehe auch:
- Wie soll ich mich mit einer JDBC-Datenbank/Datenquelle in einer Servlet-basierten Anwendung verbinden?
- Ist es sicher, eine statische java.sql.Connection-Instanz in einem Multithread-System zu verwenden?