Aar*_*ron 7 passwords postgresql psql
我已经在 Mac 上安装了 PostgreSQL 9.3。我正在尝试执行此命令:
$ sudo -u postgres psql template1
Password:
Password:
psql: FATAL: password authentication failed for user "postgres"
Run Code Online (Sandbox Code Playgroud)
如您所见,它要求输入密码,我给了它。但它失败了。我尝试了 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
Run Code Online (Sandbox Code Playgroud)
根据我的理解,这不应该要求输入密码。但事实确实如此。
有趣的是:它在 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"
Run Code Online (Sandbox Code Playgroud)
结果我的系统上安装了两个版本的 PostgreSQL。8.4 和 9.3。每当安装 8.4 时,所有默认值都设置为使用它而不是 9.3。因此,尽管 9.3 永远不会请求权限或密码,但 8.4 会。
终于能够杀掉正在运行的8.4版本了。并将流量重定向到 9.3。现在可以了!!!
我也将 8.4 的 pg_hba.conf 文件设置为信任......以防万一。