【发布时间】:2020-07-04 03:26:18
【问题描述】:
问题描述
Spring Boot(app) 容器无法连接到“mysql”容器
问题输出
原因:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:无法创建与数据库服务器的连接。尝试重新连接 3 次。放弃。
application.properties
spring.datasource.username = root
spring.datasource.url = jdbc:mysql://mysql:3306/fms?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false
spring.datasource.password = manager@123
docker-compose.yml
version: '3.7'
services:
mysql:
image: mysql:latest
restart: always
command: --default-authentication-plugin=mysql_native_password
ports:
- "33061:3306"
networks:
- spring-boot-mysql-network
environment:
MYSQL_DATABASE: fms
MYSQL_ROOT_PASSWORD: manager@123
volumes:
- ./database_storage:/docker-entrypoint-initdb.d
app:
build:
context: .
dockerfile: app.Dockerfile
ports:
- "8091:8080"
networks:
- spring-boot-mysql-network
depends_on:
- mysql
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
restart: always
depends_on:
- mysql
environment:
PMA_HOST: database
PMA_PORT: 3306
ports:
- "9091:80"
networks:
spring-boot-mysql-network:
driver: bridge
【问题讨论】:
-
尝试
"3306:3306"而不是"33061:3306"或使用33061作为jdbc:mysql://mysql:33061.......上的端口号 -
感谢您的回复 :) 但是我已经尝试了您的两个解决方案。它仍然显示“连接被拒绝”
-
装有MySQL的容器是否启动? MySQL是在容器内启动的吗?有防火墙阻碍吗?
-
yes.docker ps 显示状态(最多 3 分钟)
-
我什至可以通过(mysql -h 192.168.32.2 -P 3306 -u root -p)从我的主机使用它的 ip 连接“mysql容器”
标签: java mysql spring spring-boot docker