Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';t将Spring Boot应用程序中Docker中的MySQL与IDE中的OpenJDK 8连接起来_Java_Spring_Spring Boot_Docker_Docker Compose - Fatal编程技术网

Java Can';t将Spring Boot应用程序中Docker中的MySQL与IDE中的OpenJDK 8连接起来

Java Can';t将Spring Boot应用程序中Docker中的MySQL与IDE中的OpenJDK 8连接起来,java,spring,spring-boot,docker,docker-compose,Java,Spring,Spring Boot,Docker,Docker Compose,我在不同的linux发行版中运行过这个问题。我使用的是相同的SpringBoot应用程序和docker compose文件,但在运行/调试应用程序(以及从DataGrip)时,我无法从Intellij社区IDE连接到Docked MySQL 我当前的设置: 拇指草 OpenJDK 1.8.0.292版本 Docker 20.10.6-ce SpringBoot v2.1.8.0版本 我的docker编写yml文件: version: '2' services: demo-mysql:

我在不同的linux发行版中运行过这个问题。我使用的是相同的SpringBoot应用程序和docker compose文件,但在运行/调试应用程序(以及从DataGrip)时,我无法从Intellij社区IDE连接到Docked MySQL

我当前的设置:

  • 拇指草
  • OpenJDK 1.8.0.292版本
  • Docker 20.10.6-ce
  • SpringBoot v2.1.8.0版本
我的docker编写yml文件:

version: '2'
services:
  demo-mysql:
    image: mysql:5.7.18
    restart: always
    environment:
      - MYSQL_USER=user
      - MYSQL_PASSWORD=password
      - MYSQL_DATABASE=database
      - MYSQL_RANDOM_ROOT_PASSWORD=yes
    ports:
      - 3306:3306
从IDE运行应用程序时发生SpringBoot错误(字符限制):

我目前正在使用OpenSUSE,我已经在Fedora Workstation 33和34上运行了这个问题。Java应用程序不使用SSL,但在其他发行版(如Manjaro、Ubuntu、Pop_OS!)上运行时出现SSL握手错误

我禁用了防火墙,从
java.security
文件中注释了
jdk.tls.disabledAlgorithms
,尝试了
spring.datasource.url
,使用
0.0.0.0:3306
127.0.0.1:3306
:3306
。我在这个问题上花了几天的时间,因此更改了发行版,感谢您的帮助。我可以提供任何需要的信息

(更新)


JDBC连接字符串为:
spring.datasource.url=JDBC:mysql://0.0.0.0:3306/database?useUnicode=yes&characterEncoding=UTF-8

您使用什么库与mysql通信?您使用的是什么jdbc连接字符串。spring boot是否也在您的容器中运行?您是否通过任何可用的第三方客户端连接到mysql来验证mysql是否正在运行?为什么使用docker compose版本2而不是3?应用程序使用JPA,我用JDBC字符串更新了我的问题。Docker Compose文件属于我工作的公司,因此我没有更改它。我尝试使用DataGrip应用程序连接数据库,但它也会出现SSLHandshake错误。如果无法使用DataGrip连接,则问题在于MySql服务器本身。您应该在启动时检查输出,以确保它实际上正在启动。是的,我同意这一点。我可以进入docker容器本身并在其中使用mysql命令。我认为这是一个连接问题,就像防火墙问题一样。但我没有使用防火墙,我也检查了docker监听3306端口的情况。