Maison > base de données > tutoriel mysql > 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
Libérer: 2024-11-02 10:06:31
original
486 Les gens l'ont consulté

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.
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal