【问题标题】:pgadmin3: FATAL: Ident authentification failed for user "postgres"pgadmin3:致命:用户“postgres”的身份验证失败
【发布时间】:2012-09-19 05:27:00
【问题描述】:

我正在尝试使用以下设置在 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

编辑:工具 -> 服务器配置 -> pg_hba.conf 显示为灰色。

【问题讨论】:

    标签: postgresql authentication pgadmin


    【解决方案1】:

    看起来 PgAdmin-III 可能默认通过 IPv6 连接,因此它使用与本地主机的 IPv6 地址匹配的 ident 行,::1/128

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

    # 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。您可以通过sudo 以用户postgres 的身份运行PgAdmin-III,但使用nano 或类似的命令行文本编辑器修改pg_hba.conf 会更安全(而且可能更容易)。

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

    【讨论】:

      【解决方案2】:

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

      sudo -u postgres psql
      

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

      然后在 psql 中输入下面的命令来更改密码。

      \password
      

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2011-02-25
          • 2020-10-24
          • 2018-10-09
          • 2015-02-17
          • 2015-08-29
          • 1970-01-01
          • 1970-01-01
          • 2018-02-04
          • 2016-09-20
          相关资源
          最近更新 更多