Dockerized Spring Boot, MySQL und Hibernate: Fehlerbehebung bei „Kommunikationsverbindungsfehler“
Beim Ausführen einer Spring Boot-Anwendung mit MySQL in einem Docker Container kann aufgrund von Verbindungsproblemen zwischen der App und der Datenbank der Fehler „Kommunikationsverbindungsfehler“ auftreten. Dies kann behoben werden, indem sichergestellt wird, dass in der Konfiguration der Anwendung der richtige Datenbank-Hostname verwendet wird.
In der bereitgestellten Konfiguration verwendet die Methode „createConnection“ den Hostnamen „localhost“ in der JDBC-URL. Dies bezieht sich auf den Host-Computer, auf dem nicht das MySQL-Docker-Image ausgeführt wird.
Um das Problem zu beheben, sollte die Docker-Compose-Datei so geändert werden, dass sie den Hostnamen des MySQL-Images in der Umgebungskonfiguration der Spring Boot-Anwendung verwendet. Hier ist die aktualisierte Docker Compose-Datei:
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
Durch Angabe der Umgebungsvariablen SPRING_DATASOURCE_URL im Docker-Image der Spring Boot-Anwendung wird der Hostname des MySQL-Containers (docker-mysql) in der JDBC-Verbindung verwendet. Dadurch wird das Kommunikationsproblem behoben und die Anwendung kann erfolgreich eine Verbindung zur Datenbank herstellen.
Das obige ist der detaillierte Inhalt vonWarum kommt es bei meiner Docker-Spring-Boot-App zu einem „Kommunikationsverbindungsfehler', wenn ich eine Verbindung zu MySQL herstelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!