繁体   English   中英

错误使用 MySQL 和 Spring 引导应用程序与 docker

[英]Erorr using MySQL and Spring boot app with docker

我尝试将我的 spring 启动应用程序与 MySQL Docker 容器连接起来。 我跑了:

docker run --name mysql-demo -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=test -e MYSQL_USER=sa -e MYSQL_PASSWORD=password -d mysql:lat

并得到

CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                 NAMES
8d540d1824b9   mysql:latest   "docker-entrypoint.s…"   23 minutes ago   Up 23 minutes   3306/tcp, 33060/tcp   mysql-demo

在我的 spring 应用程序中,我有一个属性文件:

spring.datasource.url=jdbc:mysql://mysql-demo:3306/test
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=update
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect

当我尝试运行此应用程序或构建 jar 时,它会因此错误而崩溃

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

如果我在本地使用 mysql 而没有 docker,则该应用程序可以工作

您没有公开端口 3306。您必须使用 -p3306:3306 来做到这一点,否则您将无法访问此端口。

docker run -p3306:3306 --name mysql-demo -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=test -e MYSQL_USER=sa -e MYSQL_PASSWORD=password -d mysql:lat

我在同一个网络中运行了 2 个容器

更多信息在这里: 如何访问 mysql docker 容器 spring 启动 Z05B6053C41A2130AFD6F64E 容器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM