尝试使用官方 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*”配置全部被忽略。因此,无论怎样,您要么没有连接到您认为的样子,要么它没有按照您想象的方式配置。
以上就是如何将密码与官方 postgres docker 镜像一起使用?的详细内容,更多请关注编程网其它相关文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756