最新公告
  • 欢迎您光临码农资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!加入我们
  • 如何将密码与官方 postgres docker 镜像一起使用?

    如何将密码与官方 postgres docker 镜像一起使用?

    问题内容

    尝试使用官方 postgres docker 镜像:

    docker run --rm -d 
            --name my-postgres 
            --network my-network 
            -e POSTGRES_USER=postgres 
            -e POSTGRES_PASSWORD=mysuperduperlongpwstring 
            -e POSTGRES_DB=postgres 
            -v /path/to/postgres/data/:/var/lib/postgresql/data
            postgres
    

    但是,当使用 Go 创建 postgres 连接时,

            psqlInfo := fmt.Sprintf(
                    "host=%s port=%s user=%s password=%s dbname=%s sslmode=%s",
                    os.Getenv("DB_HOST"),
                    os.Getenv("DB_PORT"),
                    os.Getenv("DB_USER"),
                    os.Getenv("DB_PASSWORD"),
                    os.Getenv("DB_NAME"),
                    os.Getenv("DB_SSL_MODE"),
            )
            db, err := sql.Open("postgres", psqlInfo)
            if err != nil {
                    panic(err)
            }
    

    我总是以

    结束

    panic: pq: 用户“postgres”的密码验证失败

    我没有任何其他方法来验证 mysuperduperlongpwstring:

    • 尝试使用 psql -U postgres -d postgres --password 从 docker 容器内连接数据库,并提供任何内容作为密码就可以了。
    • 尝试从 docker 容器内更改密码,将会得到

    错误:必须是超级用户才能更改复制角色或更改复制属性

    也就是说,基本上以下答案不再对我有用:

    • 如何更改 Postgresql docker 镜像密码
    • 如何更改 PostgreSQL 用户密码?

    由于缺乏资源,我在启动docker时多次更改了mysuperduperlongpwstring,并相应地更改了我的Go PW,但每次都以相同的失败告终。

    请问问题出在哪里,如何排查?
    如何使用官方 postgres docker 重置密码?

    正确答案

    在 Docker 容器中,设置您显示的内容并从空卷开始,“postgres”将是超级用户,因此您不会收到有关它需要成为超级用户的错误。

    我对此部分看到的唯一合理的解释是,要么您没有在您认为的地方运行 psql,要么您没有从空卷开始,因此您的 docker run 命令只是启动了一个现有数据库,因此您的“-e POSTGRES*”配置全部被忽略。因此,无论怎样,您要么没有连接到您认为的样子,要么它没有按照您想象的方式配置。

    想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
    本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
    如有侵权请发送邮件至1943759704@qq.com删除

    码农资源网 » 如何将密码与官方 postgres docker 镜像一起使用?
    • 7会员总数(位)
    • 25846资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 293稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情