PostgreSQL登录失败:psql error FATAL Peer authentication failed for user pgpool
pgpool用户已创建,密码已设置,权限已设置,允许登录,navcat工具可以连接。 但是在PostgreSQL所在服务器上,连接失败,使用以下命令登录均报错psql: error: FATAL:Peer authentication failed for user "pgpool"。问题分析和解决方案如下。
·
问题
- pgpool用户已创建,密码已设置,权限已设置,允许登录
- 但是在PostgreSQL所在服务器上,连接失败,使用以下命令登录均报错,但是navcat工具可以连接
su - postgres
# 指定用户启动,失败
psql -U pgpool
# 以为是没有同名数据库 pgpool 导致的加了个 -d postgres,还是失败
psql -U pgpool -d postgres
# 再次尝试 指定下端口号,还是失败,之后去百度了
psql -p 5432 -U pgpool -d postgres
- 报错信息
psql: error: FATAL: Peer authentication failed for user "pgpool"
处理
- 很明显,报错信息是用户认证失败,用户不可信
- 百度了一堆,都说
pg_hba.conf问题,要求全改为trust,这个有安全风险,自己测试用可以这么改,但是不建议 - 去查看下自己配置的
pg_hba.conf,发现配置没问题,全网段支持md5命令登录 - 我这里还是自己测试用的,生产使用可以指定ip段可连接
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
host all all 0.0.0.0/0 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all peer
host replication all 127.0.0.1/32 trust
host replication all ::1/128 trust
host replication all 0.0.0.0/0 md5
- 而且navcat可以连接,说明不是网段限制的原因
- 试着在登录命令里加了下
-h localhost,竟然可以了 - 无语,可能是设置
local不可信导致的 - 为什么加了下
-h localhost就可以了呢,应该是加上就不是local,命中了后面的host all all 0.0.0.0/0 md5 - 在pg所在服务器上,使用非
postgres用户登录,指定主机地址,才能正常登录
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)