Maison  >  Article  >  base de données  >  Comment réparer « Échec du lien de communication » dans Spring Boot avec Docker et MySQL ?

Comment réparer « Échec du lien de communication » dans Spring Boot avec Docker et MySQL ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-02 10:06:31433parcourir

How to Fix

Erreur courante : échec du lien de communication dans Spring Boot avec Docker et MySQL

Les développeurs utilisant Spring Boot, Hibernate et MySQL dans un environnement Docker peuvent rencontrer un problème courant résultant dans ce message d'erreur :

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
java.net.ConnectException: Connection refused.

Cette erreur provient généralement d'une référence d'hôte incorrecte dans l'URL JDBC. Pour résoudre ce problème, il est crucial de modifier l'URL JDBC pour qu'elle pointe vers le nom d'hôte correct de la base de données dans l'environnement Docker.

Voici une démonstration claire de la solution :

1. Configuration de Docker Compose :

Le fichier docker-compose.yml fourni utilise localhost comme hôte pour le conteneur de base de données MySQL, ce qui est incorrect dans l'environnement Docker.

2 . Configuration Docker Compose corrigée :

Pour rectifier cela, mettez à jour le fichier docker-compose.yml comme suit :

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

Dans cette configuration mise à jour, l'hôte docker-mysql fait référence à le nom du conteneur MySQL, qui garantit une connectivité appropriée au sein de l'environnement Docker.

3. Mettre à jour la configuration de l'application Spring Boot :

Supprimez la propriété spring.datasource.url du fichier application.properties. Spring Boot utilisera la variable d'environnement SPRING_DATASOURCE_URL pour configurer l'URL JDBC.

En implémentant ces modifications, l'application devrait être en mesure d'établir une connexion réussie à la base de données MySQL dans l'environnement Docker.

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