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 连接主机。