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

Spring boot jar docker 部署抛出 MySQL 容器的连接异常

郭博涉
2023-03-14

我今天刚刚开始探索Docker,我一直在尝试启动由MySQL DB支持的Spring Boot Web应用程序。

我拉出一个MySQL容器,并使用以下代码运行它:

docker run -t --name mysql-docker-container -p 3306:3306 -e MYSQL_ROOT_PASSWORD=**** -e MYSQL_DATABASE=spring_app_db -e MYSQL_USER=app_user -e MYSQL_PASSWORD=**** -d mysql

我的应用程序.属性html" target="_blank">文件:

spring.datasource.url=jdbc:mysql://0.0.0.0:3306/spring_app_db?autoReconnect=true&failOverReadOnly=false&maxReconnects=10
spring.datasource.username=app_user
spring.datasource.password=test123

spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect

这样,当我在IDE中运行Spring启动时,它能够在db表上连接并执行CRUD。但是,当我尝试将其部署在docker上并与MySQL容器链接时,它会引发连接被拒绝错误。我的 Dockerfile:

FROM openjdk:11
LABEL maintainer="baljinder@gmail.com"
VOLUME /tmp
EXPOSE 8080
ADD target/demo-0.0.1-SNAPSHOT.jar bootmysql.jar
ENTRYPOINT ["java", "-jar", "bootmysql.jar"]

我用来运行引导的docker映像的命令:

docker run -t --name spring-jpa-container -p 8080:8080 --link mysql-docker-container:mysql spring-jpa-app

有人能帮忙吗?我已经尝试通过创建docker网络(< code > docker network create-d bridge SQL _ spring _ network )在同一个容器网络上部署这两者,但是错误仍然存在。

共有2个答案

水品
2023-03-14

使用:

jdbc:mysql://mysql-docker-container:3306/spring_app_db?autoReconnect=true&failOverReadOnly=false&maxReconnects=10

取代:

jdbc:mysql://0.0.0.0:3306/spring_app_db?autoReconnect=true&failOverReadOnly=false&maxReconnects=10
佟嘉祯
2023-03-14

当使用<code>--linkmysql。

您的数据库url,因此应该是:jdbc: mysql://mysql: 3306/spring_app_db?autorenect=true

 类似资料:
  • 我尝试通过应用服务器Glassfish和JPA连接到mysql数据库。 我的persistence.xml如下所示: mysql中的“max_connections”设置为600。这样就够了。 有什么问题?

  • 问题内容: 这个问题已经在这里有了答案 : 将查询错误转换为MySQLi中的异常 (3个答案) 9个月前关闭。 我碰到了这个: PHP错误处理:die()VS trigger_error()VS throw异常 并且理解抛出异常更好 我如何在此代码中替换die并使用throw异常:- 问题答案:

  • 我正试图从PHP容器连接到容器化的MySQL数据库,虽然同一网络上的所有容器都是如此,但问题是,当我点击

  • 我在部署到登台时遇到了一些问题,希望任何人都能提出一个解决方案。 所以我用Capistrano部署Rails4来做Droplet。我在不同的液滴上有生产/分期分支(实际上我是第一次部署分期,无法使其工作)。部署进行得很好,我已经在“当前”文件夹中准备好了我的应用程序。但我有麻烦的是创建数据库。当我跑的时候 rails_env=Production bundle exec rake DB:CREAT

  • 我读过这段代码,其中接口抛出异常,但实现它的类没有抛出异常或捕获异常,这是为什么?它在java中是合法的还是安全的?