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
在docker上运行的mysql容器可以';无法连接spring boot java api服务_Java_Spring_Spring Boot_Docker - Fatal编程技术网

在docker上运行的mysql容器可以';无法连接spring boot java api服务

在docker上运行的mysql容器可以';无法连接spring boot java api服务,java,spring,spring-boot,docker,Java,Spring,Spring Boot,Docker,我有一个mysql,它正在docker容器上运行。使用此命令拉取并运行容器 $docker container run--namecloud--networkemployee-e MYSQL\u ROOT\u PASSWORD=ROOT-e MYSQL\u DATABASE=bootdb-d MYSQL:5.7 位于本地的spring boot应用程序-我正在尝试在java应用程序和mysql容器之间建立连接: 配置属性: spring.datasource.url=jdbc:mysql:

我有一个mysql,它正在docker容器上运行。使用此命令拉取并运行容器

  • $docker container run--namecloud--networkemployee-e MYSQL\u ROOT\u PASSWORD=ROOT-e MYSQL\u DATABASE=bootdb-d MYSQL:5.7

  • 位于本地的spring boot应用程序-我正在尝试在java应用程序和mysql容器之间建立连接:

  • 配置属性

    spring.datasource.url=jdbc:mysql://cloud/bootdb?serverTimezone=UTC&characterEncoding=UTF-8&useUnicode=true&allowPublicKeyRetrieval=true&useSSL=false
    spring.datasource.username=root
    spring.datasource.password=root
    spring.datasource.platform=mysql
    spring.datasource.initialization-mode=always
    spring.jpa.hibernate.ddl-auto = create
    spring.datasource.driverClassName=com.mysql.jdbc.Driver
    spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQLDialect
    
    错误:

  • 原因:java.net.UnknownHostException:云
  • 原因:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障 成功发送到服务器的最后一个数据包是0毫秒前的。驱动程序尚未从服务器收到任何数据包
  • 尽管我已经做了所有事情来构建该应用程序,但我还是将mysql连接器版本和mysql容器版本更改为相同的版本。没能成功-

    pom文件配置-

  • spring引导启动器数据jpa
  • mysql连接器java-版本5.1.46,docker mysql:5

  • 当你说-Spring Boot应用程序正在本地运行时-我假设它在docker之外运行。
    尝试以下选项

    步骤1:再次创建mysql容器,暴露端口:3306

    docker run--name cloud--network employee-p3306:3306-e MYSQL\u ROOT\u PASSWORD=ROOT-e MYSQL\u DATABASE=bootdb-d MYSQL:5.7

    步骤2:使用验证mysql是否在公开的端口上运行,并且您可以访问它。从MY-SQL GUI工具获取帮助

    步骤3:更新spring启动配置文件。

    spring.datasource.url=jdbc:mysql://localhost:3306/bootdb?serverTimezone=UTC&characterEncoding=UTF-8&useUnicode=true&allowPublicKeyRetrieval=true&useSSL=false

    您需要公开端口并通过本地主机连接,或者将Spring Boot应用程序也放在docker容器中,并在同一网络中运行,以便能够这样连接到容器上。嘿@戴纳姆先生,谢谢你的回复,我也做了那部分,但仍然有错误。在两个容器之间建立连接:它启动连接,然后在一分钟后停止。注意-在构建spring应用程序时,它显示的是build faliure,如果没有jar fie,我无法构建图像。您好@fly2matrix谢谢您的回复,我已经按照您的步骤进行了操作,并且成功了!