Heim > Datenbank > MySQL-Tutorial > Wie behebt man „Communications Link Failure'-Fehler beim Herstellen einer Verbindung zu MySQL in einer Docker-Spring-Boot-Anwendung?

Wie behebt man „Communications Link Failure'-Fehler beim Herstellen einer Verbindung zu MySQL in einer Docker-Spring-Boot-Anwendung?

Mary-Kate Olsen
Freigeben: 2024-11-02 05:38:29
Original
238 Leute haben es durchsucht

How to Fix “Communications Link Failure” Errors When Connecting to MySQL in a Dockerized Spring Boot Application?

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
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

und dass der Anwendungscontainer vom MySQL-Container abhängt:

<code class="yaml">app:
    image: app:latest
    ports:
      - 8091:8091
    depends_on:
      - docker-mysql</code>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage