PostgreSQL:pg_hba.conf中的MD5身份验证给了我致命:用户“postgres”的对等身份验证失败

PostgreSQL: MD5 Authentication in pg_hba.conf gives me FATAL: Peer authentication failed for user “postgres”

我正在运行Ubuntu 14.04并安装了PostgreSQL 9.3。
编辑/etc/postgresql/9.3/main/pg_hba.conf为:

1
2
3
4
5
6
#"local" IS FOR Unix DOMAIN socket connections ONLY
LOCAL   ALL             ALL                                     md5
# IPv4 LOCAL connections:
host    ALL             ALL             127.0.0.1/32            md5
# IPv6 LOCAL connections:
host    ALL             ALL             ::1/128                 md5

我重新启动了服务器,现在我想以postgres身份登录postgres:

1
2
victor@workstation:~$ psql -U postgres
psql: FATAL:  Peer authentication failed FOR USER"postgres"

不应该postgres提示我的密码,因为我已将其身份验证方法设置为MD5?

我明白如果我添加-h localhost它会工作。

不添加此标志会导致psql使用对等身份验证吗?


你必须有另一个local ... peer行。 错误Peer authentication failed来自服务器,它是选择auth方法的服务器。

其他可能性是:

  • 实际上没有重启服务器
  • 如果系统上有多个PostgreSQL实例,则编辑错误的pg_hba.conf文件。