我有一个使用mysql的简单Java应用程序。
这是我的docker-compose.yaml
version: '2.1'
services:
docker-mysql:
image: mysql:latest
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=test2
- MYSQL_PASSWORD=root
ports:
- 3306:3306
my-app:
image: 0935a6b56fe5
depends_on:
- docker-mysql
ports:
- 8080:8080
environment:
- DATABASE_HOST=docker-mysql
- DATABASE_USER=root
- DATABASE_PASSWORD=root
- DATABASE_NAME=test2
- DATABASE_PORT=3306id 0935a6b56fe5的图像是mysql图像。
这是我的application.properties
## Server config
server.port=8080
server.tomcat.uri-encoding=utf-8
## MYSQL JPA
spring.jpa.database=MYSQL
spring.jpa.show-sql=true
spring.datasource.url=jdbc:mysql://localhost:3306/test2?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=
spring.datasource.test-while-idle=true
spring.datasource.test-on-borrow=true
spring.datasource.validationQuery=SELECT 1
#Hibernate ddl auto (create, create-drop, update)
spring.jpa.hibernate.ddl-auto=none
spring.datasource.driverClassName=com.mysql.jdbc.Driver当我尝试运行docker-compose up应用程序时,它会给我一个连接拒绝的错误。
这是怎么回事?
发布于 2018-09-24 14:31:12
很可能是这条线
spring.datasource.url=jdbc:mysql://localhost:3306/test2?characterEncoding=utf8应改为
spring.datasource.url=jdbc:mysql://docker-mysql:3306/test2?characterEncoding=utf8因为您的my-app正在码头容器中运行,而localhost并不是您所认为的那样。您可以访问码头内的其他码头容器-使用您在service中选择的docker-compose.yml的名称撰写。
发布于 2018-09-24 14:27:52
您的spring.datasource.url=jdbc:mysql://localhost:3306/test2?characterEncoding=utf8引用本地主机。你能试试spring.datasource.url=jdbc:mysql://docker-mysql:3306/test2?characterEncoding=utf8吗?
另外,spring.datasource.password=是空白的。您如何提供密码?
https://stackoverflow.com/questions/52481480
复制相似问题