mysql - 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
解决方案
推荐阅读
- java - 编辑序列化对象
- node.js - Reactjs 和 node js 路由问题
- c++ - reinterpret_cast 成员函数指针指向 void(*&)()
- android - 在 Dagger 2 中,lateinit 属性 apiComponent 尚未初始化
- python - ValueError:检查输入时出错:预期dense_10_input的形状为(11,)但得到的数组形状为(83,)
- r - 根据按组递增的值进行观察
- java - 删除孩子时,将父帐户 ID 设置为 null
- spring-mvc - Thymeleaf hasAuthority() 注销后不正确
- intellij-idea - JetBrains IDE 中是否有相当于 vscode 的快速打开(ctrl+P)
- php - 三元条件运算中的“压缩”代码以将前缀添加到值