Spring Boot容器无法连接到我的SQL容器



我已经阅读了所有与问题相关的问题,并控制了所有要点。似乎一切都与我的代码,但它不连接无论如何。当我尝试从容器连接时,我得到了连接拒绝错误。(顺便说一句。当我更改URL并尝试从localhost连接时,一切都很好)

我的java项目

spring:
datasource:
url: jdbc:mysql://mysqldb:3306/bootdb
username: root
password: root
jpa:
properties:
hibernate:
dialect: org.hibernate.dialect.MySQL5InnoDBDialect
hibernate:
ddl-auto: update
database-platform: org.hibernate.dialect.MySQL5Dialect
generate-ddl: true

我的docker-compose文件

version: "3"
services:
mysqldb:
image: mysql
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: bootdb
networks:
- testnetwork
employee-jdbc:
image: bago1/student:latest
restart: always
build: .
ports:
- 8080:8080
networks:
- testnetwork
depends_on:
- mysqldb
links:
- mysqldb
networks:
testnetwork:

当我编辑URL为

时,它成功地从我的本地主机连接
url: jdbc:mysql://mysqldb:3306/bootdb
  1. DB工作正常
  2. 它们在同一个网络上
  3. 语法正常

在docker组合中添加hostname字段:

version: "3"
services:
mysqldb:
image: mysql
hostname: mysqldb
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: bootdb
employee-jdbc:
image: bago1/student:latest
restart: always
build: .
ports:
- 8080:8080
depends_on:
- mysqldb
links:
- mysqldb

(Ps:不需要添加networks字段,使用docker-compose会自动为您的服务创建一个网络)

(PS2:使用图像时使用标签是一个很好的做法(而不是使用mysql:latest))

删除MySQL容器的端口配置并插入:

expose:
- 3306

相关内容

  • 没有找到相关文章

最新更新