首页  >  文章  >  数据库  >  为什么我的 Dockerized Spring Boot 应用程序在连接 MySQL 时出现'通信链路故障”?

为什么我的 Dockerized Spring Boot 应用程序在连接 MySQL 时出现'通信链路故障”?

DDD
DDD原创
2024-11-02 18:11:29297浏览

Why Does My Dockerized Spring Boot App Get

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

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