无法登录PostgreSQL数据库

Jas*_*ett 19 postgresql

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

create user blog with password 'blog';
Run Code Online (Sandbox Code Playgroud)

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

alter database blog_development owner to blog;
Run Code Online (Sandbox Code Playgroud)

然后我尝试登录,它不起作用:

$ psql -d blog_development -U blog -W
Password for user blog:
psql: FATAL:  Ident authentication failed for user "blog"
Run Code Online (Sandbox Code Playgroud)

知道为什么吗?

我尝试过的一件事就是编辑 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
Run Code Online (Sandbox Code Playgroud)

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

Jas*_*ett 35

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

psql -h localhost -U blog -d blog_development
Run Code Online (Sandbox Code Playgroud)

  • 是的,没有-h主机pgsql尝试登录本地unix套接字,即以本地开头并以ident结尾的行是阻碍了什么. (3认同)

nat*_*e c 5

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

82本地所有身份

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