OperationalError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on '0.0.0.0' ([Errno 111] Connection refused)")
OperationalError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on '0.0.0.0' ([Errno 111] Connection refused)")
我正在尝试将带有 sqlAlchemy 的 FastAPI 连接到 mysql 数据库容器。
我正在使用别名。不幸的是,它无法连接,我不知道为什么。
在具有环境变量的外部端口上使用 MySQL Workbench 可以连接。
SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:3091@db:3306/investing"
这是docker撰写文件
version: '3.8'
services:
db:
command: '--default-authentication-plugin=mysql_native_password'
environment:
- MYSQL_DATABASE=investing
- MYSQL_ROOT_PASSWORD=3091
image: mysql:8.0.28
ports:
- "3307:3306"
restart: on-failure
volumes:
- "./db/init:/docker-entrypoint-initdb.d"
# healthcheck:
# test: mysqladmin ping -h 127.0.0.1 -u $$MYSQL_USER --password=$$MYSQL_PASSWORD
# client:
# build: client
# ports: [3000]
# restart: always
server:
build: server
ports:
- "5000:5000"
restart: always
depends_on:
- db
volumes:
- ./server:/tmp
- ./server/data:/tmp/data
Docker PS
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cccbd4651340 react-flask-app_server "python /tmp/app.py" 47 minutes ago Restarting (0) 6 seconds ago react-flask-app_server_1
690185103a7b mysql:8.0.28 "docker-entrypoint.s…" 47 minutes ago Up 45 seconds 33060/tcp, 0.0.0.0:3307->3306/tcp, :::3307->3306/tcp react-flask-app_db_1
有趣的是,在从 Flask 转换为 FastAPI 的过程中,我忘记取消对 uvicorn 的注释以真正正确地 运行 服务器。有点呜呜呜 xD。
# uvicorn.run(host="0.0.0.0", port="5000")
我完全惊讶它让我无法连接,而不是没有日志的纯退出代码 0。这真让我失望。
if __name__ == '__main__':
uvicorn.run("app:app", host="0.0.0.0", port="5000")
PS。我的主文件是 app.py 而不是 main.py 因此 app:app 不是 main:app
我正在尝试将带有 sqlAlchemy 的 FastAPI 连接到 mysql 数据库容器。
我正在使用别名。不幸的是,它无法连接,我不知道为什么。
在具有环境变量的外部端口上使用 MySQL Workbench 可以连接。
SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:3091@db:3306/investing"
这是docker撰写文件
version: '3.8'
services:
db:
command: '--default-authentication-plugin=mysql_native_password'
environment:
- MYSQL_DATABASE=investing
- MYSQL_ROOT_PASSWORD=3091
image: mysql:8.0.28
ports:
- "3307:3306"
restart: on-failure
volumes:
- "./db/init:/docker-entrypoint-initdb.d"
# healthcheck:
# test: mysqladmin ping -h 127.0.0.1 -u $$MYSQL_USER --password=$$MYSQL_PASSWORD
# client:
# build: client
# ports: [3000]
# restart: always
server:
build: server
ports:
- "5000:5000"
restart: always
depends_on:
- db
volumes:
- ./server:/tmp
- ./server/data:/tmp/data
Docker PS
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cccbd4651340 react-flask-app_server "python /tmp/app.py" 47 minutes ago Restarting (0) 6 seconds ago react-flask-app_server_1
690185103a7b mysql:8.0.28 "docker-entrypoint.s…" 47 minutes ago Up 45 seconds 33060/tcp, 0.0.0.0:3307->3306/tcp, :::3307->3306/tcp react-flask-app_db_1
有趣的是,在从 Flask 转换为 FastAPI 的过程中,我忘记取消对 uvicorn 的注释以真正正确地 运行 服务器。有点呜呜呜 xD。
# uvicorn.run(host="0.0.0.0", port="5000")
我完全惊讶它让我无法连接,而不是没有日志的纯退出代码 0。这真让我失望。
if __name__ == '__main__':
uvicorn.run("app:app", host="0.0.0.0", port="5000")
PS。我的主文件是 app.py 而不是 main.py 因此 app:app 不是 main:app