错误:
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL: password authentication failed for user "username"
您好,我正在尝试使用 Docker 在本地运行程序,并在标题中收到错误,即使它以前可以工作。
我尝试重新安装Docker,重新克隆存储库,重新安装PostgresSQL(第一次安装时问题就开始了(。通过阅读类似的问题,我确保密码匹配。密码是 Docker Postgres 数据库的"密码",我尝试更改它,但它仍然不起作用。
我正在使用"docker-compose up -d"然后运行测试,但我在标题中出现错误。我尝试运行"docker-compose down"然后重做,但我仍然收到错误。
.env 文件:
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
docker-compose.yml:
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"
(我没有5432:5432
的端口,因为它不起作用,我找到了删除第二个 5432 的答案。
老板帮了我这个忙。显然,当我安装 Postgres 时,它创建了一个 postgres 用户,该用户有一个使用端口 5432 的进程,即使我们杀死了它,它也会自动重新启动。为了解决这个特定问题,我们将 docker-compose 文件更改为在本地使用端口 5433,在容器中使用 5432。仍然必须找出如何摆脱 postgres 用户。