Django 无法通过 psycopg2 连接到 PostgreSQL Docker 容器
Django can't connet to PostgreSQL Docker container via psycopg2
我正在尝试在 macOS Monterey 12.3 上迁移一个 django 项目,但遇到了一些麻烦。
似乎 psycopg2 根本不想连接到我的 docker 容器。每次打印此错误时:
django.db.utils.OperationalError: connection to server at "localhost" (127.0.0.1), port 5433 failed: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
对于我的 docker 进程,我通过 运行
创建它
docker run --name local-postgres -p 5433:5433 -e POSTGRES_PASSWORD=test123 -d postgres
我是 运行 python 3.9.12 在使用 pipenv 的虚拟环境中,我的 arch 是 arm64,对于任何想知道的人。
我试过更改端口,我试过重置,完全删除 docker 并再次下载,重新安装 django 并再次重新安装 venv,但到目前为止没有任何效果。我也尝试在设置中设置 CONN_MAX_AGE=0
,但没有用。
请帮忙
Postgres 在端口 5432 上侦听,因此您需要将其映射到主机上要连接的端口。看起来你想使用端口 5433,所以你会这样做
docker run --name local-postgres -p 5433:5432 -e POSTGRES_PASSWORD=test123 -d postgres
然后您可以使用本地主机端口 5433 连接主机。
我正在尝试在 macOS Monterey 12.3 上迁移一个 django 项目,但遇到了一些麻烦。
似乎 psycopg2 根本不想连接到我的 docker 容器。每次打印此错误时:
django.db.utils.OperationalError: connection to server at "localhost" (127.0.0.1), port 5433 failed: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
对于我的 docker 进程,我通过 运行
创建它docker run --name local-postgres -p 5433:5433 -e POSTGRES_PASSWORD=test123 -d postgres
我是 运行 python 3.9.12 在使用 pipenv 的虚拟环境中,我的 arch 是 arm64,对于任何想知道的人。
我试过更改端口,我试过重置,完全删除 docker 并再次下载,重新安装 django 并再次重新安装 venv,但到目前为止没有任何效果。我也尝试在设置中设置 CONN_MAX_AGE=0
,但没有用。
请帮忙
Postgres 在端口 5432 上侦听,因此您需要将其映射到主机上要连接的端口。看起来你想使用端口 5433,所以你会这样做
docker run --name local-postgres -p 5433:5432 -e POSTGRES_PASSWORD=test123 -d postgres
然后您可以使用本地主机端口 5433 连接主机。