【发布时间】:2015-11-29 11:44:41
【问题描述】:
我通过以下方式(使用 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)
【问题讨论】:
-
上面还有其他
pg_hba.conf条目吗?更改后您是pg_ctl reload或select pg_reload_conf()吗? -
pg_hba.conf 中没有其他条目(后面是 IPv6 的另一个条目)。进行更改后,我使用初始化脚本重新启动。 (所以我既没有使用 pg_ctl reload 也没有使用 select pg_reload_conf())
-
... 如果您使用
-h 127.0.0.1而不是-h localhost? -
127.0.0.1 有效!但为什么?技术上 127.0.0.1 = localhost...
标签: postgresql centos6