Postgres要求输入密码,即使pg_hba.conf表示信任

时间:2014-10-09 03:55:25

标签: postgresql passwords psql

我在Mac上安装了PostgreSQL 9.3。我正在尝试执行此命令:


$ sudo -u postgres psql template1
Password:
Password: 
psql: FATAL:  password authentication failed for user "postgres"

正如您所看到的,它要求输入密码。它失败了。我尝试了postgres用户的密码和计算机密码。它总是说它失败了。

我读到您可以更改pg_hba.conf文件以不要求输入密码。它在下面:

> # TYPE  DATABASE        USER            ADDRESS                 METHOD
> 
> # "local" is for Unix domain socket connections only 
> local   all             all                                     trust
> # IPv4 local connections: 
> host    all             all             127.0.0.1/32            trust
> # IPv6 local connections: 
> host    all             all             ::1/128                 trust
> # Allow replication connections from localhost, by a user with the
> # replication privilege. 
> local   replication     postgres                                trust 
> host    replication     postgres        127.0.0.1/32            trust          
> host    replication     postgres        ::1/128                 trust 

根据我的理解,这不应该要求密码。但确实如此。

有趣的说明:它在pgAdmin3中正常登录。但不是在终端。

更新#1:

我在更改pg_hba.conf文件后尝试重启PostgreSQL。这是我得到的信息。

$ pg_ctl -D postgres -l server.log restart
pg_ctl: PID file "postgres/postmaster.pid" does not exist
Is server running?
starting server anyway
pg_ctl: could not read file "postgres/postmaster.opts"

1 个答案:

答案 0 :(得分:0)

原来我在我的系统上安装了两个版本的PostgreSQL。 8.4和9.3。每当安装8.4时,所有默认值都设置为使用它而不是9.3。因此,即使9.3永远不会要求权限或密码,8.4也会。

终于能够杀死正在运行的8.4版本。并将流量重定向到9.3。它现在有效!!!

我将8.4的pg_hba.conf文件设置为信任...以防万一。