Java Database Connectivity (JDBC) ist die Java-API, mit der Sie Abfragen und Befehle in einer Datenbank abrufen und ausführen können.
Dieser Artikel beschreibt einige Schritte zur Fehlerbehebung bei com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
Fehler, der auftritt, wenn Sie versuchen, mithilfe von JDBC eine Verbindung zu einer Datenbank herzustellen.
Der Communications link failure
Fehler tritt auf, wenn die Datenbank nicht erreichbar ist. Im Folgenden sind die möglichen Ursachen und ihre Lösungen aufgeführt:
Die IP-Adresse oder der Hostname in der JDBC-URL ist falsch.
Überprüfen und testen Sie, ob der Hostname oder die IP-Adresse antworten kann, indem Sie ping
verwenden .
Der lokale DNS-Server erkennt den Hostnamen in der JDBC-URL
Aktualisieren Sie Ihr DNS oder verwenden Sie die IP-Adresse in der JDBC-URL stattdessen.
Die Portnummer fehlt oder ist in der JDBC-URL falsch
Stellen Sie sicher, dass die IP in der MySQL®-Datenbank my.cnf richtig konfiguriert ist Datei mit Ihrem bevorzugten Texteditor.
Um die my.cnf zu finden führen Sie den folgenden Befehl aus, um Ihre MySQL-Einstellungen zu überprüfen:
mysql --help | grep "Default options" -A 1
Wenn Sie die Datei immer noch nicht finden können, versuchen Sie, den folgenden Befehl auszuführen:
find / -name my.cnf
Sie können auch an den Standardspeicherorten suchen:
- /etc/my.cnf
- /etc/mysql/my.cnf
- /usr/etc/my.cnf
- ~/.my.cnf
Der Datenbankserver akzeptiert keine TCP/IP-Verbindungen
Stellen Sie sicher, dass die Datei mysqld
Dienst läuft. Um den Status von mysqld
zu überprüfen führen Sie je nach Ihrer Linux®-Distribution die folgenden Befehle aus:
Für CentOS® 6 oder Red Hat® Enterprise Linux® (RHEL) 6:
service mariadb status
Für CentOS 7+ oder RHEL 7+:
systemctl status mariadb.service
Für das Betriebssystem Ubuntu®:
/etc/init.d/mysql status
Die Datenbank ist heruntergefahren oder ausgeschaltet
Führen Sie den folgenden Befehl aus, um die MySQL-Datenbank zu starten:
Für CentOS 6 / RHEL 6:
service mariadb start
Für CentOS 7+ / RHEL 7+:
systemctl start mariadb.service
Für das Ubuntu-Betriebssystem:
/etc/init.d/mysql start
Der Datenbankserver hat keine Verbindungen mehr
Starten Sie die Datenbank neu und prüfen Sie, ob Ihr Code beim Schließen der Verbindungen ein Problem hat.
Verbindungen zwischen Java und DB blockieren die Kommunikation
Deaktivieren Sie die Firewall oder den Proxy. Alternativ können Sie sie so konfigurieren, dass sie den Port zulassen oder weiterleiten. Wenn Sie CentOS 6/RHEL 6 verwenden, lesen Sie den Artikel zu iptables.