无法将 Spring Boot 应用程序连接到 Docker Mysql 容器 - 未知数据库

Mar*_*uka 2 docker spring-boot

在docker中创建了一个网络

docker network create mysql-network
Run Code Online (Sandbox Code Playgroud)

然后我创建mysql镜像

docker container run -d -p 3306:3306 --net=mysql-network --name mysql-hibernate -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=test -v hibernate:/var/lib/mysql mysql
Run Code Online (Sandbox Code Playgroud)

当我运行docker ps时一切似乎都正常 在此输入图像描述

这是我的应用程序属性

spring.jpa.hibernate.ddl-auto=create
useSSL=false
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=password
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL57Dialect
Run Code Online (Sandbox Code Playgroud)

我也尝试过

spring.datasource.url=jdbc:mysql://mysql-hibernate:3306/test
Run Code Online (Sandbox Code Playgroud)

但是启动时总是会报错

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:未知数据库“测试”

它怎么可能不知道数据库“test”?我在 docker 中指定了名称,如下所示
-e MYSQL_DATABASE=test
我缺少什么?

小智 6

我知道有点晚了,但无论如何我都会回答,这样来这里的人可以受益;)您的配置总体看来不错。当您收到这样的错误时,您可以在 application.properties 中设置数据源 url 的行中添加标记参数设置为 true 。所以你会想出这样的东西:

spring.datasource.url=jdbc:mysql://localhost:3306/test?createDatabaseIfNotExist=true
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!