在 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中文网其他相关文章!