pgadmin3:致命:用户“postgres”的身份验证失败

时间:2012-09-19 05:27:00

标签: postgresql authentication pgadmin

我正在尝试使用以下设置在pgadmin3中注册新服务器:

Name: postgres
Host: localhost
Username: postgres
Password: <password which works for psql>
Service: empty or postgres

但它显示错误:

FATAL: Ident authentification failed for user "postgres"

我重新启动了postgresql服务,但无济于事。

/var/lib/pgsql/data/pg_hba.conf的内容:

# TYPE  DATABASE    USER        CIDR-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               ident

编辑:工具 - &gt;服务器配置 - &gt; pg_hba.conf是灰色的。

3 个答案:

答案 0 :(得分:4)

PgAdmin-III可能默认情况下通过IPv6进行连接,因此它使用的ident行与localhost的::1/128的IPv6地址相匹配。

如果您想使用密码验证,您可能需要:

# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
# IPv6 local connections:
host    all         all         ::1/128               md5

我不确定为什么你将unix域套接字行设置为trust,但如果它只是一台开发机器,那可能就行了,所以保持不变。将ident(如果您希望unix用户必须与Pg用户相同)或md5(对于本地unix套接字上的密码验证)更为安全。

如果PgAdmin-III没有编辑权限,则需要直接在文本编辑器中编辑pg_hba.conf。您可以通过postgres以用户sudo运行PgAdmin-III,但是使用nano或类似的命令行文本编辑器来修改{{1}更安全(也可能更容易) }}

密码适用于pg_hba.conf,因为psql除非另有说明,否则将通过unix域套接字连接,并将其设置为psql。您可能会发现可以将任何密码提供给trust并且它仍然可以正常工作,因为它永远不会被要求实际提供密码,它只是被自动信任。

答案 1 :(得分:3)

是的,每个新手用户都会看到pgadmin这种类型的错误。 我找到了这个解决方案,它对我有用。

sudo -u postgres psql

这将询问您的系统密码,然后您将收到postgres提示。

然后在psql type下面的命令中更改密码。

\password

现在输入新密码并重新输入。

答案 2 :(得分:0)

PostGreSQL帐户调试步骤(特定于Linux):

  1. 确保您确实安装了它(不仅仅是客户端,服务器)。
  2. 确保它正在运行。
  3. 确保你知道这里 - 通常在 / var / lib / pgsql / data - 但这可能在任何地方 - / var / lib / pgsql / unrelated -instance。检查 postgres进程以查看它是哪个目录(-D参数)。
  4. 修改上一步中目录中的 pg_hba.conf 文件。我不知道为什么这个步骤不在postgres文档中。
  5. 具体配置已在例如Jay和Craig Ringer的回答。确保配置两者 IPV4和IPV6。
  6. 重新启动服务器。
  7. 测试您的配置是否有效。重复5-7,直到您成功登录。
  8. 重要不要停止!现在您应该配置一个更安全的密码选项 - postgres可以用于快速本地设置,但您希望使用更安全,可配置的身份验证机制,如LDAP,Kerberos或GSSAPI。此外,您希望确保已启用SSL。