Maison >base de données >tutoriel mysql >Comment corriger les erreurs « Échec du lien de communication » lors de l'utilisation de Spring Boot, Hibernate et MySQL Docker ?

Comment corriger les erreurs « Échec du lien de communication » lors de l'utilisation de Spring Boot, Hibernate et MySQL Docker ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-02 17:05:29745parcourir

How to Fix

Correction de l'erreur "Échec du lien de communication" dans la configuration de Spring Boot, Hibernate et MySQL Docker**

Lors de l'exécution d'une application Spring Boot avec Hibernate & MySQL dans un environnement dockerisé, les utilisateurs peuvent rencontrer l'erreur « Échec du lien de communication » en raison de la référence localhost dans l'URL JDBC. Voici comment résoudre ce problème :

Problème :

L'erreur se produit car l'URL JDBC dans le code de l'application fait référence à "localhost" en tant qu'hôte de la base de données. Cependant, dans la configuration Docker, la base de données MySQL s'exécute dans un conteneur distinct avec une adresse IP différente.

Solution :

Pour résoudre ce problème, mettez à jour le JDBC URL dans le fichier docker-compose.yml pour pointer vers le nom du conteneur MySQL au lieu de "localhost":

docker-compose.yml

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

Explication :

Dans le fichier docker-compose.yml mis à jour, la variable d'environnement SPRING_DATASOURCE_URL dans le conteneur "app" est définie pour faire référence au conteneur MySQL par son nom, "docker-mysql". Cela garantit que l'application peut se connecter correctement au conteneur de base de données MySQL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn