我正在使用springboot、hibernate和mysql。在运行应用程序时,它按照预期运行良好。但是,当制作docker compose文件并用mysql docker image运行app docker image时,会出现这个错误。
错误com.mysql.jdbc.exceptions.jdbc4.communicationsexception:通信链接失败java.net.connectexception:连接被拒绝。
private Connection createConnection() throws SQLException
{
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
String mysqlUrl = "jdbc:mysql://localhost/database?autoReconnect=true&useSSL=false";
Connection connection = DriverManager.getConnection(mysqlUrl, "root", "root");
return connection;
}
应用程序属性
spring.datasource.url=jdbc:mysql用法:/localhost/database?autoreconnect=true&usessl=false spring.datasource.username=root
spring.datasource.password=根
请指导我如何解决这个问题。
**docker-compose.yml**
version: '3'
services:
docker-mysql:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=database
- MYSQL_USER=root
- MYSQL_PASSWORD=root
ports:
- 3307:3306
app:
image: app:latest
ports:
- 8091:8091
depends_on:
- docker-mysql
3条答案
按热度按时间ie3xauqp1#
问题是由于jdbc url中引用了localhost。
下面的配置应该可以工作。
u7up0aaq2#
当我遇到这个错误时,docker论坛的讨论帮助了我。对我来说,这是一个与缓存的问题,我没有得到运行后的错误
docker-compose down --rmi all
epfja78i3#
你有没有告诉你的 Docker 它依赖于sql?我的意思是有这样的事情:
在你的docker-compose.yml里?
好像是配置问题。