我创建了一个这样的用户:
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)
默认情况下psql使用本地套接字(在man中检出-h标志) - 当你登录时它应匹配第82行.
82本地所有身份
ident需要系统中的真实用户检查密码.因此,您可以通过主机连接或添加用户,以便它与您的新配置行匹配.
| 归档时间: |
|
| 查看次数: |
26928 次 |
| 最近记录: |