【问题标题】:Postgres docker error: FATAL: password authentication failed for userPostgres docker错误:致命:用户的密码验证失败
【发布时间】:2021-03-23 00:03:59
【问题描述】:

我用 docker 创建了一个 Postgres 容器

sudo docker run -d \
    --name dev-postgres \
    -e POSTGRES_PASSWORD=test \
    -e POSTGRES_USER=test \
    -v ${HOME}/someplace/:/var/lib/postgresql/data \
    -p 666:5432 \
    postgres

我将 Postgres 实例测试作为指定的用户名和密码in the doc

容器内的 Postgres 端口 (5432) 链接到我在主机上的 666 端口。

现在我想用 psql 试试这个

psql --host=localhost --port=666 --username=test

提示输入用户test的密码,输入test后得到

psql: error: FATAL:  password authentication failed for user "test"

【问题讨论】:

    标签: postgresql docker


    【解决方案1】:

    有不同的问题会导致这种情况

    • 主机和容器上的 Postgres 版本可能不一样

      如果您必须更改使用的 Postgres 的 docker 版本,请确保使用新版本的容器没有崩溃。在使用相同目录存储数据时尝试更改 Postgres 的版本可能会导致问题,因为该目录使用错误的版本初始化。

      如果崩溃可以使用docker logs [container name] 进行调试

    • 如果您更改了 env 参数,则 docker 使用的卷可能存在问题(具有缓存值的东西会在 env 变量更改时阻止创建新用户)。

        docker stop $(docker ps -qa) && docker system prune -af --volumes
    
    • 如果您对某些使用 Postgres 的库有疑问,您可能需要安装一些软件包以允许库与 Postgres 一起使用。这两个是 Stack Overflow 答案经常参考的一个。
        sudo apt install libpq-dev postgresql-client
    
    • 其他问题似乎与 docker 配置问题有关。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-05
      • 2020-10-13
      • 1970-01-01
      • 1970-01-01
      • 2021-11-21
      • 1970-01-01
      • 2020-08-13
      相关资源
      最近更新 更多