postgresql - psql 和 pgadmin4 连接失败
问题描述
我使用 postgres 11,我只是尝试将我的一个用户连接到 psql 和 pgadmin4
我的 pg_hba.conf 文件
# "local" is for Unix domain socket connections only
local all all peer
host sito lcm_admin 127.0.0.1/32 md5
host sito sito_lcm 127.0.0.1/32 md5
我的 postgres 用户有密码。
我尝试了我的 posgres 用户,sito_lcm 和 lcm_admin 来连接到 pgAdmin4,总是得到
Invalid username or password
我知道有好处,因为它是我用来在 java 程序中连接到 posgres db 的那个
对于 psql 我试过
su - postgres 输入了我的密码
认证失败
尝试与我的一位数据库用户
psql -U lcm_admin sito
psql: FATAL: Peer authentication failed for user "lcm_admin"
编辑
使用 Daniel Vérité 提示,我可以连接到 psql 但不能连接到 pgAdmin4
我第一次看到这个屏幕,我的最后一次连接是几个月前,不知道一些更新是否造成了这个问题
解决方案
由于 pg_hba.conf 中的这条规则
host sito lcm_admin 127.0.0.1/32 md5
您可能想以这种方式调用 psql :
psql -U lcm_admin -h 127.0.0.1 sito
然后它会要求输入密码,而不是因为“对等身份验证失败”而失败。
请注意,pg_hba.conf 中的规则按照文件中的顺序(从上到下)进行测试,并在第一个匹配的规则处停止。
关于与 pgAdmin4 的连接:
如https://www.pgadmin.org/docs/pgadmin4/latest/getting_started.html中所述,作为应用程序访问 pgAdmin4 本身还有一个额外的步骤。
在服务器部署中,安装时会询问电子邮件地址和密码。如果您不记得密码但提供了有效的电子邮件地址,“忘记密码”链接可能对您有用。否则,我想从头开始重新安装 pgAdmin4 也可能有效。
就个人而言,我将 pgAdmin4 作为没有持久卷的 docker 容器启动:
$ docker run -p8080:80 -e PGADMIN_DEFAULT_EMAIL=foo@example.com -e PGADMIN_DEFAULT_PASSWORD=bar dpage/pgadmin4
然后我连接到 http://localhost:8080 并且在第一页输入的电子邮件/密码是在命令行中传递的那些环境变量。
推荐阅读
- multithreading - 多线程读取同一个文件的效率
- excel - 有没有办法将 Power BI 表导出到 excel 中?
- python - Numpy 数组到数据框如果使用所有标量值,则必须传递一个索引
- momentjs - 在本地构建时间,然后转换为另一个时区
- java - 如何在intellij上安装jboss fuse 6.3
- forms - 在 Javascript 中嵌套数学函数
- vuetify.js - 如何使 Vutify VMenu 右对齐?
- python - 更感知统一的颜色图?
- r - 仅当存在于另一个数据框中时才将行保留在数据框中
- google-chrome - 为什么我的 PushSubscriptions 过期这么快?