首页 > 解决方案 > 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的图像0935a6b56fe5mysql图像。

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

这有什么问题?

标签: javamysqldocker

解决方案


spring.datasource.url=jdbc:mysql://localhost:3306/test2?characterEncoding=utf8指的是本地主机。你能试一下吗spring.datasource.url=jdbc:mysql://docker-mysql:3306/test2?characterEncoding=utf8

也是spring.datasource.password=空白。你如何提供密码?


推荐阅读