用户“ postgres”的密码不匹配

时间:2019-02-19 11:14:01

标签: postgresql docker docker-compose dockerfile

我试图在docker-compose中提高服务以使用postgres,我可以正确地提高容器,问题是它不允许我使用我在环境变量中设置的密码进行身份验证

这是我的docker-compose服务:

version: "3"
services:
  api:
    build:
      context: .
      dockerfile: docker/nodejs/Dockerfile
    ports:
      - "3000:3000"
    volumes:
      - .:/app
    links:
      - postgresql

  postgresql:
    image: postgres:11-alpine
    restart: always
    environment:
      POSTGRES_PASSWORD: 00000000
    volumes:
      - ~/docker/postgresql:/var/lib/postgresql/data
    ports:
      - "5432:5432"

这里可能是什么问题?我试图进入pgadmin。在控制台中显示错误:

password authentication failed for user "postgres"
Password does not match for user "postgres".

4 个答案:

答案 0 :(得分:1)

如果数据库(在var / lib / postgresql / data文件夹为空时),则在第一次初始化时设置Postgres密码。由于您之前可能使用不同的密码运行了docker-compose,因此新密码不会生效。 要解决此问题,请在主机中删除该卷,并在下次运行docker-compose时让docker-compose自动重新创建它。请注意,删除该卷将删除PostgreSQL

中存储的所有数据。

答案 1 :(得分:0)

这可能与您的卷有关。尝试修剪卷,然后再次启动容器。确保在修剪它们之前不需要它们!

查看现有的卷

docker volume ls

然后清除它们

docker volume prune

答案 2 :(得分:0)

POSTGRES_PASSWORD 失败的另一种方法是设置一个包含禁止字符的密码。您不会收到任何警告,但您将无法使用此密码登录。

答案 3 :(得分:-1)

如果您不是第一次运行它,则可以更改它。 您可以手动编辑pg_hba.conf文件并设置信任授权类型