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

使用 Spring Boot、Hibernate 和 MySQL Docker 时如何修复'通信链路故障”错误?

Patricia Arquette
Patricia Arquette原创
2024-11-02 17:05:29745浏览

How to Fix

修复 Spring Boot、Hibernate 和 MySQL Docker 设置中的 “通信链接故障”错误**

使用 Hibernate 运行 Spring Boot 应用程序时& MySQL 在 dockerized 环境中,由于 JDBC URL 中的 localhost 引用,用户可能会遇到“通信链接失败”错误。以下是解决此问题的方法:

问题:

发生错误的原因是应用程序代码中的 JDBC URL 引用“localhost”作为数据库主机。但是,在 Docker 设置中,MySQL 数据库运行在具有不同 IP 地址的单独容器中。

解决方案:

要解决此问题,请更新 JDBC docker-compose.yml 文件中的 URL 指向 MySQL 容器的名称,而不是"localhost":

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-compose 中.yml 文件中,“app”容器中的 SPRING_DATASOURCE_URL 环境变量设置为引用 MySQL容器的名称为“docker-mysql”。这确保应用程序可以正确连接到 MySQL 数据库容器。

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

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