2014-10-16 85 views
0

我无法使用我创建的帐户(alex)连接到我的Linux Fedora安装程序的本地Postgresql数据库。我已经尝试了很多不同的东西,包括将'方法'改为md5等等。这是我的pg_hba.conf文件的副本:无法用我创建的用户连接到本地Postgresql数据库

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" 

回答

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以使用peer通过unix套接字进行身份验证。

0

修复了它,我猜这个条目越高,它在pg_hpa.conf文件中的优先级就越高。我删除了顶级同行条目,并解决了问题。

相关问题