Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 使用Docker:sqlalchemy.exc.OperationalError:(psycopg2.OperationalError)致命:用户密码身份验证失败;用户名";_Postgresql_Docker_Virtualenv - Fatal编程技术网

Postgresql 使用Docker:sqlalchemy.exc.OperationalError:(psycopg2.OperationalError)致命:用户密码身份验证失败;用户名";

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”,

错误:

您好,我正在尝试使用Docker在本地运行一个程序,并且在标题中得到了错误,尽管它以前工作过

我尝试过重新安装Docker,重新克隆repo,重新安装PostgresSQL(这个问题是从我第一次安装它时开始的)。通过阅读类似的问题,我确保密码匹配。密码是Docker Postgres数据库的“password”,我已经尝试过更改它,但仍然不起作用

我正在使用“docker compose up-d”,然后运行测试,但标题中出现了错误。我试着运行“docker compose down”,然后重新运行,但仍然出现错误

.env文件:

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"