Postgresql 使用Docker:sqlalchemy.exc.OperationalError:(psycopg2.OperationalError)致命:用户密码身份验证失败;用户名";
错误: 您好,我正在尝试使用Docker在本地运行一个程序,并且在标题中得到了错误,尽管它以前工作过 我尝试过重新安装Docker,重新克隆repo,重新安装PostgresSQL(这个问题是从我第一次安装它时开始的)。通过阅读类似的问题,我确保密码匹配。密码是Docker Postgres数据库的“password”,我已经尝试过更改它,但仍然不起作用 我正在使用“docker compose up-d”,然后运行测试,但标题中出现了错误。我试着运行“docker compose down”,然后重新运行,但仍然出现错误 .env文件:Postgresql 使用Docker:sqlalchemy.exc.OperationalError:(psycopg2.OperationalError)致命:用户密码身份验证失败;用户名";,postgresql,docker,virtualenv,Postgresql,Docker,Virtualenv,错误: 您好,我正在尝试使用Docker在本地运行一个程序,并且在标题中得到了错误,尽管它以前工作过 我尝试过重新安装Docker,重新克隆repo,重新安装PostgresSQL(这个问题是从我第一次安装它时开始的)。通过阅读类似的问题,我确保密码匹配。密码是Docker Postgres数据库的“password”,我已经尝试过更改它,但仍然不起作用 我正在使用“docker compose up-d”,然后运行测试,但标题中出现了错误。我试着运行“docker compose down”,
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL: password authentication failed for user "username"
docker-compose.yml:
FLASK_ENV=development
REDIS_URL=redis://localhost:6379
DATABASE_URL=postgresql+psycopg2://username:password@localhost:5432/programname
PROGRAM_API_APP_NAME=test-prod.compute.random.com
(我没有端口名为
5432:5432
,因为它与此不兼容,我找到了删除第二个5432的答案。)Boss帮我解决了这个问题。显然,当我安装Postgres时,它创建了一个Postgres用户,该用户有一个使用端口5432的进程,即使我们杀死它,它也会自动重新启动。为了解决这个特定问题,我们将docker compose文件更改为在本地使用端口5433,在容器中使用端口5432。仍然需要找出如何摆脱postgres用户。docker中的postgres不在本地主机上,而是在主机postgresql上。您必须连接到计算机上运行的其他postgres实例。这可能也是您无法使用5432:5432的原因,因为该端口已绑定。感谢您的回复!我对这些事情不是很有经验。我如何解决这个问题?以下是如何终止进程
version: '3'
services:
postgresql:
image: postgres:10-alpine
environment:
- POSTGRES_DB=programname
- POSTGRES_PASSWORD=password
- POSTGRES_USER=username
ports:
- "5432"
redis:
image: redis:5.0.3
ports:
- "6379:6379"