gpt4 book ai didi

java - Docker 与依赖的 mysql 组合导致连接被拒绝

转载 作者:行者123 更新时间:2023-11-29 16:57:13 24 4
gpt4 key购买 nike

我有一个使用 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=3306

ID为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应用程序尝试运行但它给我一个连接被拒绝错误。

这有什么问题吗?

最佳答案

很可能是这一行

spring.datasource.url=jdbc:mysql://localhost:3306/test2?characterEncoding=utf8

应该阅读

spring.datasource.url=jdbc:mysql://docker-mysql:3306/test2?characterEncoding=utf8

因为您的 my-app 正在 docker 容器内运行,而 localhost 并不是您想象的那样。您可以使用您在 docker-compose.yml 中选择的 service 名称来访问 docker-compose 内的其他 docker 容器。

关于java - Docker 与依赖的 mysql 组合导致连接被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52481480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com