使用Docker:sqlalchemy.exc.OperationalError:(psycopg2.OperationalError)严重:用户“ username”的密码身份验证失败

时间:2019-07-23 17:44:02

标签: postgresql docker virtualenv

错误:

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的答案。)

1 个答案:

答案 0 :(得分:0)

老板帮助了我。显然,当我安装Postgres时,它创建了一个postgres用户,该用户的进程正在使用端口5432,即使我们杀死了它,它也会自动重新启动。为了解决此特定问题,我们将docker-compose文件更改为在本地使用端口5433和在容器中使用5432。仍然必须找出如何摆脱postgres用户。