我有一个停靠的PSQL实例和一个连接到它的停靠的应用程序.尽管我从未设置密码,但try 连接时仍收到错误的密码错误.默认的postgres不起作用.

compose.yml

services:
  psql:
    build: database/.
    env_file: vars.env
    ports:
      - "5432:5432"
  reader:
    build: reader/.
    env_file: vars.env
    restart: always

reader.py

import psycopg2

connection = psycopg2.connect(
    database="postgres",
    user="postgres",
    password="postgres",
    host="psql",
    port=5432)

cursor = connection.cursor()

误差率

psycopg2.Operational误差率: connection to server at "psql" (172.29.0.3), port 5432 failed: FATAL:  password authentication failed for user "postgres"

这个密码可能是什么?或者它是如何设定的.我以为没有设置默认用户或密码.

推荐答案

您必须确保vars.env文件包含以下内容:

POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres

为了解决问题,我会go 掉vars.env,并按照文档的建议使用一个直接的环境变量,看看它是否有效:

  psql:
    image: postgres
    restart: always
    environment:
      POSTGRES_PASSWORD: postgres

来自文档:

PostgreSQL映像使用了几个简单的环境变量 错过了.唯一需要的变量是postgres_password,其余变量为 可选.

Postgresql相关问答推荐

当通过PostgreSQL FDW中的视图使用时,年龄函数的计算方式不同

在Docker Compose中获取CSV文件数据?

如何诊断字符编码问题

postgres 不同类型的更新

如何在postgres中查询多行

PostgreSQL pg_dump 创建 sql 脚本,但它不是 sql 脚本:有没有办法让 pg_dump 创建标准的 sql 脚本?

Postgres >= 和 <= 具有特殊字符的行为

postgres 中的模式前缀,被调用元素的范围

无法从 docker-compose 上的其他服务解析 postgres 主机名

订阅标签保存在哪个表中?

如何将 grafana 与 Google Cloud SQL 集成

Django 1.8 数组字段追加和扩展

PostgreSQL 中的 JSON 外键

sql语句错误:column .. does not exist

Redis 可以写出到像 PostgreSQL 这样的数据库吗?

在 Postgresql 中拆分逗号分隔的字段并对所有结果表执行 UNION ALL

如何从 CSV 为 PostgreSQL 副本生成模式

SQL 基本类型:integer vs int?

如何从 PostgreSQL 中的 Json 数组中获取元素

pgadmin 错误:no password supplied