Flask无法在Docker中连接mysql

时间:2019-12-09 05:47:45

标签: mysql docker docker-compose

烧瓶无法在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

1 个答案:

答案 0 :(得分:0)

您需要更改:

DATABASE_URL=mysql+pymysql://root:xxxxx@mysql-db:3307/gaojiesi

至:

DATABASE_URL=mysql+pymysql://root:xxxxx@mysql-db:3306/gaojiesi

无法从容器内部访问端口3307