Dockerized Spring Boot、MySQL 和 Hibernate:排除“通信链路故障”
在 Docker 中运行带有 MySQL 的 Spring Boot 应用程序时容器中,由于应用程序和数据库之间的连接问题,可能会遇到“通信链接失败”错误。通过确保在应用程序的配置中使用正确的数据库主机名可以解决此问题。
在提供的配置中,createConnection 方法在 JDBC URL 中使用 localhost 主机名。这是指主机,而不是运行 MySQL Docker 映像的位置。
要解决此问题,应修改 Docker Compose 文件以在 Spring Boot 应用程序的环境配置中使用 MySQL 映像的主机名。这是更新后的 Docker Compose 文件:
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
通过在 Spring Boot 应用程序的 Docker 映像中指定环境变量 SPRING_DATASOURCE_URL,MySQL 容器 (docker-mysql) 的主机名将在 JDBC 连接中使用。这解决了通信问题并允许应用程序成功连接到数据库。
以上是为什么我的 Dockerized Spring Boot 应用程序在连接 MySQL 时出现'通信链路故障”?的详细内容。更多信息请关注PHP中文网其他相关文章!