首页 > 解决方案 > 2003,“无法连接到 MySQL 服务器。Docker

问题描述

我有一个错误

pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'db' (timed out)")

当我运行我的 docker-compose docker-compose up --build -d

我测试过,我可以使用命令docker exec -it db mysql -u root -p连接到数据库

还检查了我的 /etc/hosts 文件:127.0.0.1 localhost

数据库/Dockerfile

FROM mysql
RUN mkdir /var/log/mysql && chmod 777 /var/log/mysql

码头工人-compose.yml

version: '3'
services:
  sender:
    container_name: sender
    build:
      context: ./sender
      dockerfile: Dockerfile
    image: sender:latest
    #command: tail -f /dev/null
    command: python run.py
    #command: python run_output_to_files.py
    depends_on:
      - stream_server
      - db
    env_file:
      - sender/variables.env
      - database.env
    volumes:
      - ./sender/logs/:/logs/:rw
    ports:
      - 8083:8083
      - 554:554
      - "1241-1244:1241-1244/udp"
  receiver:
    container_name: receiver
    ports:
      - 5004:5000
    image: receiver:latest
    build:
      context: ./receiver
      dockerfile: Dockerfile
    command: flask run --host=0.0.0.0
    depends_on:
      - stream_server
      - sender
      - db
    environment:
      - STREAM_SERVER_URL=stream_server
      - DELAY_MSEC=750
  stream_server:
    container_name: stream_server
    ports:
      - 1935:1935
      - 1985:1985
      - 8080:8080
    image: ossrs/srs:3
    #command: ./objs/srs -c conf/realtime.conf
  db:
    container_name: db
    image: db:latest
    build:
      context: ./db
      dockerfile: Dockerfile
    restart: on-failure
    ports:
      - "3306:3306"
    volumes:
      - ./db/mysql/:/var/lib/mysql/
      - ./db/conf.d/:/etc/mysql/conf.d/
      - ./db/startup_scripts/:/docker-entrypoint-initdb.d/
    env_file:
      - database.env
networks:
  default:
    external:
      name: buildings_default

标签: mysqldocker

解决方案


推荐阅读