【发布时间】:2014-07-15 19:16:51
【问题描述】:
在设置我的 postgresql 安装时,我确定一个用户尝试使用密码登录,当不在其各自的操作系统用户上时,验证失败并显示以下消息:
$ psql -d postgres confluence -W
psql: FATAL: Peer authentication failed for user "confluence"
一些快速的 Google 搜索告诉我更新我的 pg_hba.conf 文件。由于我在 CentOS 6.5 中运行 postgresql 9.3,因此文件位于 /var/lib/pgsql/data/pg_hba.conf。
最初包含的文件:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all ident
# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident
文件的内容现在是:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all confluence md5
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
(我怀疑它们上的 md5 有点过分,因为理论上我现在只处理域套接字连接,但我想覆盖我所有的基础。) em>
我希望重启 postgresql 来解决问题,所以我执行了:
sudo /etc/init.d/postgresql-9.3 restart
报告成功。不幸的是,登录尝试的行为没有改变。
为了重新加载配置文件,我执行了完全重启,但没有任何改变。
想一想这里缺少什么,有人吗?
编辑:
为了验证是否正在考虑该文件,我将所有连接的方法都更改为“信任”,并且如上所述重新启动服务,我得到以下信息:
$ psql -d postgres confluence
psql: FATAL: Peer authentication failed for user "confluence"
【问题讨论】:
-
Postgres服务器上肯定有一个名为 confluence 的用户吗? -
谢谢肯,肯定有。我在提到我可以在匹配的 os 用户上登录时简要提到它。看来我现在在做生意。
标签: postgresql centos centos6 postgresql-9.3