postgresql:在 fedora 上身份验证失败

postgresql: ident authentication failed on fedora

我知道这个问题之前已经被问过好几次了,但是我能找到的所有答案都告诉你在 pg_hba.conf 文件中添加如下一行:

host all all 127.0.0.1/32 md5

所以我的 pg_hba.conf 文件现在看起来像这样:

# 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            ident
# IPv6 local connections:                                                                                                                                                                                          
host    all             all             ::1/128                 ident
# Allow replication connections from localhost, by a user with the                                                                                                                                                 
# replication privilege.                                                                                                                                                                                           
#local   replication     postgres                                peer                                                                                                                                              
#host    replication     postgres        127.0.0.1/32            ident                                                                                                                                             
#host    replication     postgres        ::1/128                 ident                                                                                                                                             

# I've added the following lines:
host    all             all              127.0.0.1/32           trust
host    all             all              ::1/128                trust
host    all             all              127.0.0.1/32           md5
host    all             all              ::1/128                md5
host    all             all              192.168.0.0/24         md5

我过去在 ubuntu 上设置了几个 postgresql 服务器,从来没有遇到过问题。但是,在 fedora 上,我仍然收到以下错误消息:

FATAL: Ident authentication failed for user "postgres"

服务器是运行 Fedora 27 Workstation,postgresql版本是9.6.8-1.fc27.

您的 pg_hba.conf 中有两个本地主机身份验证规则,即..

host all  all  127.0.0.1/32  ident

host all  all  127.0.0.1/32  trust

我相信系统正在尝试验证两个身份验证选项,使 trust 选项被 ident 覆盖。由于您很可能尝试使用 trust 从本地主机(基于您的文件)进行身份验证,因此只需 comment/delete 以下行:

host all  all  127.0.0.1/32  ident

然后重新启动数据库或使用以下查询重新加载 conf 文件:

SELECT pg_reload_conf();