可怕的Java SpringBoot应用程序没有使用Docker compose Java.net连接到MySQL。ConnectException:连接被拒绝

可怕的Java SpringBoot应用程序没有使用Docker compose Java.net连接到MySQL。ConnectException:连接被拒绝,java,mysql,spring-boot,docker,docker-compose,Java,Mysql,Spring Boot,Docker,Docker Compose,可怕的Java SpringBoot应用程序没有使用Docker compose Java.net连接到MySQL。ConnectException:连接被拒绝 大家好 我一直在努力解决以下问题-可怕的Java SpringBoot应用程序无法连接到MySQL,docker compose例外: com.mysql.cj.jdbc.exceptions.CommunicationsException:通信链路故障 JDBCConnectionException:无法打开JDBC连接以执行DDL

可怕的Java SpringBoot应用程序没有使用Docker compose Java.net连接到MySQL。ConnectException:连接被拒绝

大家好

我一直在努力解决以下问题-可怕的Java SpringBoot应用程序无法连接到MySQL,docker compose例外:

com.mysql.cj.jdbc.exceptions.CommunicationsException:通信链路故障

JDBCConnectionException:无法打开JDBC连接以执行DDL

java.net.ConnectException:连接被拒绝

该应用程序本身运行良好,但一旦我进入Docker,它似乎就无法连接到mysql。 我快发疯了,因为我认为我所有的参数都是正确的,所以非常感谢您的帮助!(:

  • 站台:
以下是整个代码库:

使用以下命令运行:

docker组装--构建--删除孤立项
My docker-compose.yml(注释掉的内容是我尝试过的内容):

版本:“3.8”
服务:
genesysmysql:
容器名称:genesysmysql
#容器名称:genesysmysql\u容器
图片:“mysql:8.0.21”
重新启动:始终
环境:
-MYSQL\u ROOT\u PASSWORD=ROOT
-MYSQL\u DATABASE=db\u示例
-MYSQL\u USER=springuser
-MYSQL\u PASSWORD=密码
端口:
- 3306:3306
卷数:
-./setup.sql:/docker entrypoint initdb.d/setup.sql:ro
健康检查:
测试:[“CMD”、“mysqladmin”、“ping”、“-h”、“localhost”]
超时时间:20秒
重试次数:20次
genesys:
生成:。
端口:
- 8080:8080
取决于:
genesysmysql:
状况:服务健康
环境:
-spring.datasource.jdbc url=jdbc:genesysmysql://db_example:3306?useSSL=false&allowPublicKeyRetrieval=true&autoReconnect=true
#-spring.datasource.jdbc url=jdbc:genesysmysql://db_example:3306?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC&autoReconnect=true
-spring.datasource.driver类名=com.mysql.cj.jdbc.driver
#-spring.datasource.username=root
#-spring.datasource.password=root
#-spring.datasource.username=springuser
#-spring.datasource.password=密码
#-spring.jpa.hibernate.ddl auto=create drop
-spring.jpa.properties.hibernate.dialogue=org.hibernate.dialogue.mysql5dialogue
#-spring.data.jpa.repositories.enabled=true
#-spring.jpa.database platform=org.hibernate.dial.mysql5dial
#-spring.jpa.generate ddl=true
我的setup.sql脚本:

创建数据库db\u示例;
创建由“密码”标识的用户“springuser”@“%”;
将db_example.*上的所有内容授予“springuser”@“%”;
将db_示例。*上的所有内容授予“springuser”@“localhost”;
将db_示例中的所有内容授予'springuser'@'genesysmysql_容器';
将db_example.*上的所有内容授予'springuser'@'genesysmysql';
我的dockerfile:

来自OpenJDK/openjdk11:alpine的

维护者阿特库兹曼诺夫
运行addgroup-S spring&&adduser-S spring-G spring
用户spring:spring
ARG JAR_FILE=target/*.JAR
复制${JAR_FILE}app.JAR
曝光8080
入口点[“java”、“-jar”、“/app.jar”]
My application.properties文件:

弹簧特性 spring.application.name=@project.name@ #spring.output.ansi.console available=true #server.port=8080 spring.output.ansi.enabled=始终 ###春旗酒店 #spring.banner.location=classpath:banner.txt #spring.main.banner模式=关闭 info.app.name=@project.name@ info.app.version=@project.version@ info.app.url=@project.url@ ###弹簧驱动器特性 ##不要在公共生产应用程序中公开或启用“关机”选项。 #management.endpoint.shutdown.enabled=true management.endpoints.web.exposure.include=health、info、httptrace ###Spring开发工具属性 #spring.devtools.addproperties=false #spring.devtools.restart.log条件评估delta=false #spring.devtools.restart.enabled=false #spring.devtools.livereload.enabled=false ###Spring日志记录属性 ##调试时根据需要更改日志记录级别 logging.level.=警告 logging.level.customLogbackLevel=INFO logging.level.org.springframework=WARN logging.level.org.springframework.web.servlet.=错误 logging.level.org.hibernate=错误 logging.level.org.apache.catalina.core.ContainerBase.=WARN ###Spring分布式跟踪特性 ##齐普金性质 spring.zipkin.enabled=true spring.zipkin.base-url=http://127.0.0.1:9411/ ##侦探财产 spring.sleuth.enabled=true spring.sleuth.sampler.percentage=0.5 #spring.sleuth.web.skipPattern=(^cleanup.*.+favicon.*) ###Spring数据属性 ##这些只是开始,应该在以后更改。 #spring.jpa.hibernate.ddl auto=none spring.jpa.hibernate.ddl auto=update spring.datasource.url=jdbc:mysql://${mysql\u HOST:localhost}:3306/db\u示例?usesssl=false&allowPublicKeyRetrieval=true spring.datasource.username=springuser spring.datasource.password=密码 #spring.jpa.properties.hibernate.dialogue=org.hibernate.dialogue.MySQL5 ###Spring开放会话属性 ###默认情况下,警告消息: ##“默认情况下,spring.jpa.open-in-view处于启用状态。 ##因此,可以在视图渲染期间执行数据库查询。 ##显式配置spring.jpa.open-in-view以禁用此警告“ ##见: ##回复:spring.jpa.open-in-view警告 ## - ## - spring.jpa.openin-view=true ###弹簧的弹性特性 spring.thymeleaf.cache=false 以下是异常消息:

  • 例外情况1:

  • 备选案文2:

  • 例外情况3:

  • 例外情况4,它封装了所有这些:

{
“应用程序”:“GeneSys”,
“logMsgId”:“f7b6c3cc-0dce-4eb6-b6c3-cc0dce1eb69c”,
“@timestamp”:“2020-11-11T11:20:31.822Z”,
“@version”:“1”,
“记录器”:“org.springframework.boot.SpringApplication”,
“级别”:“错误”,
”“是的
MacOS Mojave 10.14.6
---
Docker version 19.03.13, build 4484c46d9d
docker-compose version 1.27.4, build 40524192
---
mysql  Ver 8.0.21 for osx10.14 on x86_64 (Homebrew)
---
openjdk 11.0.8 2020-07-14
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.8+10)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.8+10, mixed mode)
---
Spring CLI v2.3.4.RELEASE
---
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T21:33:14+03:00)
Maven home: /usr/local/Cellar/maven@3.5/3.5.4_1/libexec
Java version: 11.0.8, vendor: AdoptOpenJDK, runtime: /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
Default locale: en_GB, platform encoding: UTF-8
OS name: "mac os x", version: "10.14.6", arch: "x86_64", family: "mac"