我已经通过以下方式创建了一个新角色和数据库(使用postgres用户):
CREATE ROLE xxx LOGIN
PASSWORD 'CHOOSEAPASSWORD'
NOSUPERUSER INHERIT NOCREATEDB CREATEROLE REPLICATION;
CREATE DATABASE xxx
WITH OWNER = xxx
ENCODING = 'UTF8'
TABLESPACE = pg_default
CONNECTION LIMIT = -1;
\connect xxx
GRANT ALL ON DATABASE xxx TO xxx;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO xxx;
在pg_hba.conf中,我有以下条目:
local all postgres trust
local all all peer
# IPv4 local connections:
host all xxx 127.0.0.1/32 trust
host all all 127.0.0.1/32 ident
尽管如此,我无法与
联系psql -U xxx -h localhost -W
并获得错误
psql: FATAL: Ident authentication failed for user "xxx"
我可能有任何错误的想法? (我使用PostgreSQL 9.4和CentOS 6.7)
答案 0 :(得分:1)
您尚未为IPv6的本地主机地址::1
定义规则。主机的解析程序更喜欢IPv6地址::1
到IPv4地址127.0.0.1
。因此,trust
的IPv4规则永远不会匹配。
为::1
另一个常见问题,虽然已经排除在外,但没有重新加载配置。
答案 1 :(得分:0)
尝试使用 127.0.0.1 而不是 localhost