Maison > Article > base de données > Comment corriger les erreurs « Échec du lien de communication » lors de la connexion à MySQL dans une application Spring Boot Dockerisée ?
Échec du lien de communication dans Spring Boot, MySQL, Docker et Hibernate
Problème :
Lors de l'exécution une application Spring Boot avec Hibernate et MySQL utilisant Docker Compose, une erreur se produit avec le message suivant :
Communications link failure java.net.ConnectException: Connection refused
Détails :
L'erreur se produit lorsque l'application tente d'établir un connexion à la base de données MySQL. L'URL de connexion dans jdbc:mysql://localhost/database fait référence à l'hôte local, ce qui n'est pas la bonne adresse dans le conteneur Docker.
Solution :
Pour résoudre ce problème problème, l'URL de connexion dans la connexion JDBC et la configuration Spring Boot (application.properties) doivent être mises à jour pour pointer vers l'adresse du conteneur MySQL.
Connexion JDBC :
<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>
Configuration de Spring Boot (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>
Configuration de Docker Compose (docker-compose.yml) :
Assurez-vous que la configuration Docker Compose définit correctement le mappage de port pour le conteneur MySQL :
<code class="yaml">services: docker-mysql: image: mysql:5.7 ports: - 3307:3306</code>
et que le conteneur d'application dépend du conteneur MySQL :
<code class="yaml">app: image: app:latest ports: - 8091:8091 depends_on: - docker-mysql</code>
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!