【问题标题】:Getting authentication failed error with postgresql from command line从命令行使用 postgresql 获取身份验证失败错误
【发布时间】:2012-11-11 23:06:36
【问题描述】:

当我尝试像这样从命令行登录时

psql -h dbserver -U testuser test

然后我得到这个错误

psql: FATAL:  Ident authentication failed for user "testuser"

这是我的

nano -w /var/lib/pgsql/data/pg_hba.conf

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                               ident
# IPv4 local connections:
host    all         all         127.0.0.1/32          password
# IPv6 local connections:
host    all         all         ::1/128               ident
host    all     all     192.168.0.1/24  password

【问题讨论】:

  • 你有 identd 跑步吗?
  • 您是否授予该用户登录权限?
  • 将行 local all all ident 更改为 local all all md5 然后按照 Craig 的回答,或运行 identd。

标签: postgresql centos


【解决方案1】:

在使用ident 身份验证时,您不能在psql 中使用-U 指定非默认用户。您不会以该用户身份运行 psql,因此身份验证将失败。

您必须使用sudo -u testuser psql test 或更改pg_hba.conf,以便身份验证(至少对于数据库test 上的testuser)使用md5 密码身份验证,并使用@987654331 为testuser 设置密码@如果他们还没有的话。

【讨论】:

    【解决方案2】:

    我在/var/lib/pgsql/data/pg_log/postgresql-Wed.log看到以下错误:

    LOG:提供的用户名 (DB_USER) 和经过身份验证的用户名 (SHELL_USER) 与 FATAL 不匹配:用户的身份验证失败 "DB_USER"

    我的解决方案是将/var/lib/pgsql/data/pg_hba.conf中的所有身份验证方法更改为md5

    【讨论】:

      【解决方案3】:

      如上所述,此问题可能有两个原因 - 测试用户不存在 - 用户密码错误或身份验证失败。

      这是我在 Windows 中为解决此问题所做的:

      1. 通过 pgAdmin 检查:转到您的程序并搜索 pgAdmin 并运行。通常这将在http://127.0.0.1:51865/browser/ 运行

      检查服务器“PostgreSQL”下的登录/组角色选项卡。 检查用户是否存在。您也可以通过命令 "psql -U postgres" 登录到“postgres”用户并运行命令 "\du"

      来执行此操作

      如果用户 testuser 不存在,则创建它。

      1. 将 pg_hba.conf 中的身份验证方法更改为 md5。 或者,
        使用以下命令更改用户的密码: 更改用户...密码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-08-07
        • 1970-01-01
        • 1970-01-01
        • 2018-10-09
        • 2021-01-10
        • 1970-01-01
        • 2015-12-01
        • 2015-06-18
        相关资源
        最近更新 更多