Heim >Datenbank >MySQL-Tutorial >Wie behebt man „Communications Link Failure'-Fehler beim Herstellen einer Verbindung zu MySQL in einer Docker-Spring-Boot-Anwendung?
Kommunikationsverbindungsfehler in Spring Boot, MySQL, Docker und Hibernate
Problem:
Beim Ausführen Bei einer Spring Boot-Anwendung mit Hibernate und MySQL unter Verwendung von Docker Compose tritt ein Fehler wie folgt auf Nachricht:
Communications link failure java.net.ConnectException: Connection refused
Details:
Der Fehler tritt auf, wenn die Anwendung versucht, eine Verbindung zur MySQL-Datenbank herzustellen. Die Verbindungs-URL in jdbc:mysql://localhost/database bezieht sich auf den lokalen Host, der nicht die richtige Adresse im Docker-Container ist.
Lösung:
Um dieses Problem zu beheben Bei diesem Problem sollten die Verbindungs-URL in der JDBC-Verbindung und die Spring Boot-Konfiguration (application.properties) aktualisiert werden, um auf die MySQL-Container zu verweisen Adresse.
JDBC-Verbindung:
<code class="java">private Connection createConnection() throws SQLException { DriverManager.registerDriver(new com.mysql.jdbc.Driver()); String mysqlUrl = "jdbc:mysql://docker-mysql:3306/database?autoReconnect=true&useSSL=false"; Connection connection = DriverManager.getConnection(mysqlUrl, "root", "root"); return connection; }</code>
Spring Boot-Konfiguration (application.properties):
<code class="properties">spring.datasource.url=jdbc:mysql://docker-mysql:3306/database?autoReconnect=true&useSSL=false spring.datasource.username=root spring.datasource.password=root</code>
Docker Compose-Konfiguration (docker-compose.yml):
Stellen Sie sicher, dass die Die Docker Compose-Konfiguration definiert die Portzuordnung für den MySQL-Container korrekt:
<code class="yaml">services: docker-mysql: image: mysql:5.7 ports: - 3307:3306</code>
und dass der Anwendungscontainer vom MySQL-Container abhängt:
<code class="yaml">app: image: app:latest ports: - 8091:8091 depends_on: - docker-mysql</code>
Das obige ist der detaillierte Inhalt vonWie behebt man „Communications Link Failure'-Fehler beim Herstellen einer Verbindung zu MySQL in einer Docker-Spring-Boot-Anwendung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!