Heim > Datenbank > MySQL-Tutorial > Warum kommt es bei meiner Docker-Spring-Boot-App zu einem „Kommunikationsverbindungsfehler', wenn ich eine Verbindung zu MySQL herstelle?

Warum kommt es bei meiner Docker-Spring-Boot-App zu einem „Kommunikationsverbindungsfehler', wenn ich eine Verbindung zu MySQL herstelle?

DDD
Freigeben: 2024-11-02 18:11:29
Original
344 Leute haben es durchsucht

Why Does My Dockerized Spring Boot App Get

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

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage