postgresql:使用md5进行对等身份验证失败

时间:2014-05-27 01:41:31

标签: postgresql centos centos6 postgresql-9.3

在设置postgresql安装时,我确定尝试使用密码登录的用户(如果不在其各自的OS用户上)未通过以下消息进行身份验证:

$ 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在所有这些上都有点过分,因为我理论上此时只处理域套接字连接,但是我想要覆盖我的所有基础。)

我期望重启postgresql来完成这个技巧,所以我执行了:

sudo /etc/init.d/postgresql-9.3 restart

哪位成功报道。不幸的是,登录尝试的行为没有变化。

在最后努力获得配置文件的新负载时,我执行了完全重启,但没有任何改变。

关于这里缺少什么的想法,任何人?

编辑:

为了验证文件是否正在被考虑,我将所有连接的方法都改为“信任”,并且如上所述重启服务,我得到以下内容:

$ psql -d postgres confluence
psql: FATAL: Peer authentication failed for user "confluence"

1 个答案:

答案 0 :(得分:0)

如果您使用的是Centos 6.5,并且已经安装了Postgresql yum repo提供的RPM,那么您会发现pg_hba.conf文件实际上位于/var/lib/pgsql/9.3/data/,而不是/var/lib/pgsql/data/。< / p>

正如您现在可能怀疑的那样,您一直在修改系统根本无法读取的文件。

较旧的postgresql RPM用于将postgresql数据目录放在/ var / lib / pgsql / data下,但在某些时候(9.0?),他们将其移动到特定于版本的路径,这样可以更轻松地运行pg_upgrade从一个版本迁移到另一个版本的工具。最有可能的是,您正在玩​​的目录是其中一个旧版本遗留的目录。