Entwickler, die Spring Boot, Hibernate und MySQL in einer Docker-Umgebung verwenden, können auf ein häufiges Problem stoßen in dieser Fehlermeldung:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure java.net.ConnectException: Connection refused.
Dieser Fehler ist normalerweise auf einen falschen Hostverweis in der JDBC-URL zurückzuführen. Um dieses Problem zu beheben, ist es wichtig, die JDBC-URL so zu ändern, dass sie auf den richtigen Datenbank-Hostnamen in der Docker-Umgebung verweist.
Hier ist eine klare Demonstration der Lösung:
1. Docker Compose-Konfiguration:
Die bereitgestellte Datei docker-compose.yml verwendet localhost als Host für den MySQL-Datenbankcontainer, was in der Docker-Umgebung falsch ist.
2 . Korrigierte Docker Compose-Konfiguration:
Um dies zu beheben, aktualisieren Sie die Datei docker-compose.yml wie folgt:
version: '3' services: docker-mysql: image: mysql:5.7 environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_DATABASE=database - MYSQL_USER=root - MYSQL_PASSWORD=root ports: - 3307:3306 app: image: app:latest ports: - 8091:8091 environment: SPRING_DATASOURCE_URL: jdbc:mysql://docker-mysql:3306/database?autoReconnect=true&useSSL=false depends_on: - docker-mysql
In dieser aktualisierten Konfiguration bezieht sich der Host auf den Docker-MySQL der Name des MySQL-Containers, der eine ordnungsgemäße Konnektivität innerhalb der Docker-Umgebung gewährleistet.
3. Aktualisieren Sie die Spring Boot-Anwendungskonfiguration:
Entfernen Sie die Eigenschaft spring.datasource.url aus der Datei application.properties. Spring Boot verwendet die Umgebungsvariable SPRING_DATASOURCE_URL, um die JDBC-URL zu konfigurieren.
Durch die Implementierung dieser Änderungen sollte die Anwendung in der Lage sein, eine erfolgreiche Verbindung zur MySQL-Datenbank in der Docker-Umgebung herzustellen.
Das obige ist der detaillierte Inhalt vonWie kann ein „Kommunikationsverbindungsfehler' in Spring Boot mit Docker und MySQL behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!