我无法使用我创建的帐户(alex)连接到我的Linux Fedora设置上的本地Postgresql数据库。我尝试了很多不同的东西,包括将'方法'改为md5等。这是我的pg_hba.conf文件的副本:
local all all peer
local project alex peer
host all all 127.0.0.1/32 ident
host all all ::1/128 ident
用户'alex'具有登录权限和复制权限以及密码(加密)。
psql -U alex -d project -h 127.0.0.1
psql: FATAL: Ident authentication failed for user "alex"
使用'-W'开关强制输入密码会导致这种情况发生:
psql -U alex -d project -h 127.0.0.1 -W
Password for user alex:
psql: FATAL: Ident authentication failed for user "alex"
答案 0 :(得分:1)
您正在使用TCP / IP(-h 127.0.0.1
或-h localhost
),因此它使用host
行。 local
行用于unix套接字,不适用于TCP / IP。
所以它选择了ident
身份验证,它希望连接用户具有与他们连接的PostgreSQL用户相同的unix用户名。它在现代操作系统中也得不到很好的支持。 (我个人认为默认身份验证实际上是一个错误)。
我建议使用md5
密码验证而不是ident
。请记住重新加载配置以使更改生效。
或者,如果您当前的unix用户名与您希望连接的PostgreSQL用户的名称相匹配,请忽略-h 127.0.0.1
在unix套接字上使用peer
身份验证。
答案 1 :(得分:0)
修正了它,我猜这个条目越高,它在pg_hpa.conf文件中的优先级就越高。我删除了顶级对等条目,问题解决了。