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

如何使用Spring启动项目连接到Docker上的MySQL容器

琴正初
2023-03-14

我正在尝试运行一个Spring Boot应用程序,其中db必须连接到Docker上的MySQL容器。我使用了以下代码和命令。

应用程序属性:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://mysqldb:3306/practice
spring.datasource.username=root
spring.datasource.password=CVnit1234!
spring.jpa.show-sql=true
spring.sql.init.platform=mysql
spring.sql.init.mode=always
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
spring.jpa.hibernate.ddl-auto=update

用于创建容器的命令

从Docker Hub提取mysql映像:

docker pull mysql

创建容器:

docker run --name mysqldb --network spring-net -p 3307:3306 -e MYSQL_ROOT_PASSWORD=password MYSQL_DATABASE=practice -d mysql:latest

在此命令之后,将创建一个容器,即使它已启动并正常工作。我能够登录到sql bash并执行一些查询。

我尝试使用多个jdbc网址:

    < Li > JDBC:MySQL://mysqldb:3306/practice < Li > JDBC:MySQL://mysqldb:3307/practice < Li > JDBC:MySQL://mysqldb/practice < Li > JDBC:MySQL://host . docker . internal:3306/practice < Li > JDBC:MySQL://host . docker . internal:3307/practice

这些都不起作用,但是我能够连接到< code>localhost:3306和< code>localhost:3307。

下面是我的春靴代码。当我试图通过Spring Boot应用程序连接时,我得到了以下错误。

com.mysql.cj.jdbc.exceptions。通信异常:通信链路故障

这里的问题是,当我尝试连接到localhost时,应用程序已启动并正常工作,但是当尝试连接到mysql容器时,我无法连接。

共有1个答案

章学义
2023-03-14

检查您的网络以确保应用程序网络连接到MySQL网络

 类似资料:
  • 我尝试使用spring boot和MySQL制作一些rest API。我在我的eclipse环境中完成了它。下一步是创建docker映像。然而,当我在docker中运行MySQL服务器和RESTAPI时,它会给我一个连接拒绝错误。 我找到了其他基本的spring-boot和MySQL教程。但我无法解决这个问题。 这是 spring-boot 项目的 mysql 设置。 这是在docker中运行my

  • 我按照这个https://spring.io/guides/gs/accessing-data-mysql/指南连接mysql db到Spring启动项目 但是在运行应用程序时出现以下错误,我正在生成Spring starter项目,并且在通过Spring工具套件创建项目时仅选择web、mysql和jpa框 以下是application.properties 和pom.xml 编辑:添加sprin

  • 问题内容: 我在本地主机上运行mysql,可以通过运行以下命令进行连接: 我还使用以下命令运行了Docker容器: 我想从docker容器访问Mysql数据库。所以我也从docker容器输入: 但这给了我错误: 我究竟做错了什么?端口似乎是正确的。 编辑1在码头工人的 输出: 问题答案: 即使将MySQL配置为侦听所有接口,然后从容器通过非环回IP访问MySQL,您仍可能会发现Docker的路由,

  • 我拉出了mysql docker映像,并用命令运行容器: 此时,springBoot在本地工作。它与MySQL连接: 现在,我希望springBoot应用程序也在单独的docker容器上,在同一服务器上。为此,我使用了DockerFile: 同样,它无法连接到数据库:

  • 并运行相同的命令,它可以工作。 我如何才能从容器外部登录到MySQL服务器而不会得到任何错误?

  • 我已经创建了一个MySQL数据库的映像,并在容器中运行它。我希望它在端口3406/3407上运行,因此我调用docker run命令如下所示: 如果我看我的容器,它看起来是这样的: 我非常想连接到我的数据库现在,但我似乎不能使我的URL工作。 这是我的URL的样子: