我在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"
答案 0 :(得分:0)
原来我在我的系统上安装了两个版本的PostgreSQL。 8.4和9.3。每当安装8.4时,所有默认值都设置为使用它而不是9.3。因此,即使9.3永远不会要求权限或密码,8.4也会。
终于能够杀死正在运行的8.4版本。并将流量重定向到9.3。它现在有效!!!
我将8.4的pg_hba.conf文件设置为信任...以防万一。