【问题标题】:password authentication failed for user "postgres" with docker-compose up on EC2在 EC2 上使用 docker-compose up 对用户“postgres”进行密码身份验证失败
【发布时间】:2019-09-04 03:51:21
【问题描述】:

在 docker-machine 创建的 EC2 linux 服务器上,当我通过 docker-compose up 启动 docker postgres:10.6 时,出现以下循环错误:

FATAL:  password authentication failed for user "postgres"
DETAIL:  Password does not match for user "postgres".
Connection matched pg_hba.conf line 95: "host all all all md5"

如果我手动启动容器,我没有这些错误 => docker run -e POSTGRES_PASSWORD=myPassword postgres:10.6

我的本​​地 docker 中没有这些错误。

我的 docker-compose :

db:
  container_name: postgres
  image: postgres:10.6
  restart: always
  environment:
    POSTGRES_PASSWORD: myPassword
  ports:
    - "5432:5432"

有谁知道如何解决这个问题?

【问题讨论】:

    标签: postgresql docker amazon-ec2 docker-compose docker-machine


    【解决方案1】:

    这可能是因为卷(或绑定挂载目录)在您第一次启动后已经初始化。 postgres 用户和数据库创建仅在第一次启动时发生(即,/var/lib/postgresql/data 不得已包含数据库文件)。 尝试运行:

    • docker-compose rm -fv postgres 删除任何容器或卷(特别是)。
    • docker-compose up -d 启动您的容器。

    【讨论】:

    • 如果您不确定容器是否正在运行,请改用docker-compose rm -sfv postgres
    • 我必须运行 docker volume ls 才能找到卷的名称,然后运行 ​​docker volume rm <volume_name>。然后我可以重新初始化 postgres 卷
    • 非常感谢。它有助于。就我而言,当我第一次创建 docker 映像时,我使用sudo 运行。我劝别人也不要重蹈我的覆辙
    【解决方案2】:

    抱歉,我已经回答了我的问题,这不是错误,我只是有一些东西试图永久连接到 postgres(通过打开的端口 5432)...

    经过搜索,我认为这是一次黑客攻击的尝试,因为传入的连接永远不会来自同一个 IP

    connection received: host=45.120.120.149.81 port=47118
    connection received: host=210.4.125.252 port=44774
    connection received: host=82.223.55.254 port=36320
    

    等等……

    【讨论】:

    • 如果您之前使用 Postgres 设置了 PgAdmin,但没有密码,然后尝试通过 POSTGRES_PASSWORD 设置,您还会看到重复的登录失败,就像这样。
    猜你喜欢
    • 2022-11-29
    • 2021-09-30
    • 1970-01-01
    • 2020-12-09
    • 1970-01-01
    • 2020-11-09
    • 2022-11-30
    • 2020-10-24
    • 1970-01-01
    相关资源
    最近更新 更多