java - Docker compose 与依赖 mysql 拒绝连接
问题描述
我有一个使用 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
也是spring.datasource.password=
空白。你如何提供密码?
推荐阅读
- loops - 在 for 循环中打印会改变列表类型?
- mysql - 时代的CONVERT_TZ?
- sql - 新添加的列未出现在同义词中
- javascript - Firefox 警告 .. 我可以禁止它,让它不显示吗?
- reactjs - 如何解决 index.js 文件中 Hook 的错误?
- python - 在包之间共享本地 python 脚本
- c++ - LED灯类型选择条件的语义错误
- r - 在 Power BI 列上运行 R 脚本
- azure - 为 .Net WebAPI 项目添加 Microsoft.ApplicationInsights NuGet 对通过 Azure 门户激活 AI 有何影响?
- excel - 有没有办法将过滤器应用于 Excel 文件的一部分?