首页 >数据库 >mysql教程 >如何修复 Spring Boot 中使用 Docker 和 MySQL 的'通信链路故障”?

如何修复 Spring Boot 中使用 Docker 和 MySQL 的'通信链路故障”?

Patricia Arquette
Patricia Arquette原创
2024-11-02 10:06:31439浏览

How to Fix

常见错误:Spring Boot 与 Docker 和 MySQL 的通信链路失败

在 Docker 环境中使用 Spring Boot、Hibernate 和 MySQL 的开发人员可能会遇到一个常见问题,从而导致在此错误消息中:

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

此错误通常源于 JDBC URL 中的错误主机引用。要解决此问题,修改 JDBC URL 以指向 Docker 环境中正确的数据库主机名至关重要。

以下是解决方案的清晰演示:

1. Docker Compose 配置:

提供的 docker-compose.yml 文件使用 localhost 作为 MySQL 数据库容器的主机,这在 Docker 环境中是不正确的。

2 。更正的 Docker Compose 配置:

要纠正此问题,请更新 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

在此更新的配置中,主机 docker-mysql 指的是MySQL 容器的名称,确保 Docker 环境中的正确连接。

3.更新 Spring Boot 应用程序配置:

从 application.properties 文件中删除 spring.datasource.url 属性。 Spring Boot 将使用环境变量 SPRING_DATASOURCE_URL 来配置 JDBC URL。

通过实现这些更改,应用程序应该能够在 Docker 环境中与 MySQL 数据库建立成功的连接。

以上是如何修复 Spring Boot 中使用 Docker 和 MySQL 的'通信链路故障”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn