当前位置: 首页 > 知识库问答 >
问题:

通信链接失败。Docker-compose、Spring Boot、MySQL

戚星腾
2023-03-14

Dockerfile文件:

FROM openjdk:8
ADD target/DockerMyBlog.jar DockerMyBlog.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "DockerMyBlog.jar"]

docker编写。yml公司

version: "3"
services:
  app-db:
    image: mysql:latest
    container_name: "my_db"
    environment:
      - MYSQL_ROOT_PASSWORD=hey
      - MYSQL_DATABASE=javastudy
      - MYSQL_USER=roman
      - MYSQL_PASSWORD=hey
    ports:
      - 3306:3306
  app:
    build: .
    container_name: "my_app"
    ports:
      - "8080:8080"
    environment:
      SPRING_DATASOURCE_URL: jdbc:mysql://app-db:3306/javastudy?autoReconnect=true&useSSL=false
    depends_on:
      - app-db

而不是“build:.”尝试了“image: dockermyblog:最新”。没有结果。

application.properties

jdbc.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/javastudy
jdbc.username=roman
jdbc.password=hey

my\u db正在工作。在“exec”之后,我可以在其中创建所需的表。但由于“通信链路故障”,无法启动my\u应用程序

我的yml怎么了??

共有1个答案

诸葛康胜
2023-03-14

我的猜测是,“localhost”不是Docker容器与应用程序中主机上运行的另一个容器对话的有效enpoint。属性。您可以尝试将其放在机器的IP地址上,如下所示:

jdbc.url=jdbc:mysql://192.168.1.100:3306/javastudy

jdbc.url=jdbc:mysql://host.docker.internal:3306/javastudy
 类似资料:
  • 当我的java spring应用程序尝试连接到数据库时,我会得到以下信息: spring应用程序中的连接url如下所示: 最后,docker图像-A: 你知道问题是什么吗?谢谢你!

  • 问题内容: 我使用Java从Mysql查询一些记录。但是在某些持续时间的查询中,我遇到了使查询失败的问题,而在其他查询中,它查询成功了。错误消息是下一个: 我尝试了一些方法,例如: 设置 在 添加 到我的连接网址 但什么也没发生。 我的环境是: Mysql:5.5.3-m3-log源代码分发 的Java:1.6.0_16 JDK:HotSpot(TM)64位服务器VM(内部版本14.2-b01,混

  • 我正在尝试使用docker-compose运行2个docker容器,并将mysql容器连接到app容器。mysql容器正在运行,但app容器无法启动,出现错误:错误:2003:无法连接到'127.0.0.1:3306'上的mysql服务器(111连接被拒绝)似乎我的app容器正在尝试连接我的主机mysql而不是mysql容器。 Docker-compose.yml DockerFile 这是我的d

  • 问题内容: 我正在努力使数据库与Java程序进行通讯。 有人可以使用JDBC给我一个快速而肮脏的示例程序吗? 我收到一个非常严重的错误: 测试文件的内容: 问题答案: 所以,你有一个 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链接失败 java.net.ConnectException:连接被拒绝 我引用了这个答案,其中还包

  • 我正在使用hibernate.cfg运行Spring MVC应用程序,如下所示: 当我在本地环境中运行应用程序时,它运行起来没有任何问题。但在服务器上,它给出的异常为:

  • 我正在试图弄清楚为什么我的应用程序连接到我的数据库有麻烦,只有在mac OS上,所以我正在使用一个小程序运行在OS上的终端上,看看是什么原因造成的。 似乎是主机名导致了问题,但我的服务提供商不能给我一个ip地址,以尝试它是否修复了我的问题。有没有人对此有一个解决办法或者我可以尝试什么的想法?非常感谢你抽出时间。 这是连接程序。数据库用户只能选择,主机名是正确的,密码也是正确的。这个问题只发生在MA