无法登录PostgreSQL数据库

时间:2010-12-30 19:15:41

标签: postgresql

我创建了一个这样的用户:

create user blog with password 'blog';

然后我把它作为数据库的所有者:

alter database blog_development owner to blog;

然后我尝试登录并且无效:

$ psql -d blog_development -U blog -W
Password for user blog:
psql: FATAL:  Ident authentication failed for user "blog"

知道为什么吗?

我尝试过的一件事就是编辑pg_hba.conf

 76 # Database administrative login by UNIX sockets
 77 local   all                postgres                          ident
 78
 79 # TYPE  DATABASE           USER        CIDR-ADDRESS          METHOD
 80
 81 # "local" is for Unix domain socket connections only
 82 local   all                all                               ident
 83 # IPv4 local connections:
 84 host    all                all         127.0.0.1/32          md5
 85 host    blog_development   blog        127.0.0.1/32          md5
 86 # IPv6 local connections:
 87 host    all                all         ::1/128               md5

第85行是我添加的。之后我重新启动了PostgreSQL,但它似乎没有改变任何东西。

4 个答案:

答案 0 :(得分:34)

我只是想以错误的方式连接。这是正确的方式:

psql -h localhost -U blog -d blog_development

答案 1 :(得分:5)

psql默认使用本地套接字(在man中检出-h标志) - 当你登录时它应匹配第82行。

  

82本地所有身份

ident需要系统中的真实用户检查密码。因此,您可以通过主机连接或添加用户,以便它与您的新配置行匹配。

答案 2 :(得分:4)

在第82行之前,添加

local   blog_development   blog   md5

并重新加载,或使用-h localhost进行连接。

答案 3 :(得分:1)

您是否已将用户添加到pg_hba.conf?这是文档。

http://www.postgresql.org/docs/8.4/static/auth-pg-hba-conf.html

我真的不记得确切的语法,但你应该添加这样的东西:

host    blog_development     blog  127.0.0.1/32  md5

您可能需要重新加载或重新启动服务器,以便重新读取pg_hba.conf。

相关问题