烧瓶无法在docker compose中连接mysql 在连接字符串中,我已经使用数据库服务名称作为主机,但仍然无法连接数据库 我的docker-compose.yml:
services:
api:
build:
context: ./api
dockerfile: Dockerfile
volumes:
- './api:/usr/src/app'
ports:
- 5002:5000
environment:
- FLASK_CONFIG=development
- FLASK_ENV=development
- APP_SETTINGS=project.config.DevelopmentConfig
- DATABASE_URL=mysql+pymysql://root:xxxxx@mysql-db:3307/gaojiesi
- SECRET_KEY=ZQbn05PDeA7v11
depends_on:
- mysql-db
links:
- mysql-db
restart: unless-stopped
mysql-db:
image: mysql:8.0
container_name: mysql-db
command: --default-authentication-plugin=mysql_native_password
environment:
- MYSQL_ROOT_PASSWORD=frikyalong
ports:
- "3307:3306"
volumes:
- ./db/mysql/conf/my.cnf:/etc/my.cnf.d/
- ./db/mysql/logs:/logs
- ./db/mysql/data:/var/lib/mysql
答案 0 :(得分:0)
您需要更改:
DATABASE_URL=mysql+pymysql://root:xxxxx@mysql-db:3307/gaojiesi
至:
DATABASE_URL=mysql+pymysql://root:xxxxx@mysql-db:3306/gaojiesi
无法从容器内部访问端口3307