Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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 Erorr使用MySQL和带docker的Spring boot应用程序_Java_Mysql_Spring_Spring Boot_Docker - Fatal编程技术网

Java Erorr使用MySQL和带docker的Spring boot应用程序

Java Erorr使用MySQL和带docker的Spring boot应用程序,java,mysql,spring,spring-boot,docker,Java,Mysql,Spring,Spring Boot,Docker,我尝试将我的spring boot应用程序与MySQL Docker容器连接起来。 我跑: 得到 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8d540d1824b9 mysql:latest "docker-entrypoint.s…" 23 minutes ago Up

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

得到

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.

如果我在没有docker的情况下本地使用mysql,应用程序将正常工作。您没有公开端口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

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

更多信息请点击此处:

守护进程的错误响应:端口不可用:侦听tcp 0.0.0.0:3306:bind:通常只允许使用每个套接字地址(协议/网络地址/端口)。我试着使用其他端口-docker run-p3307:3306--name mysql demo-e mysql_ROOT_PASSWORD=PASSWORD-e mysql_DATABASE=test-e mysql_USER=sa-e mysql_PASSWORD=PASSWORD-d mysql:latest仍然不起作用,因此您必须停止本地mysql或使用另一个端口,如-p3307: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