当我尝试从命令行登录时
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
答案 0 :(得分:7)
使用-U
身份验证时,您无法在psql
中指定ident
的非默认用户。您不会以该用户身份运行psql
,因此身份验证将失败。
您必须使用sudo -u testuser psql test
或更改pg_hba.conf
,以便身份验证(至少对于testuser
上的test
)使用md5
密码身份验证,并且设置testuser
ALTER USER ... PASSWORD
的密码,如果他们没有{。}}。
答案 1 :(得分:1)
我在/var/lib/pgsql/data/pg_log/postgresql-Wed.log
中看到了以下错误:
日志:提供用户名(DB_USER)和经过身份验证的用户名 (SHELL_USER)与FATAL不匹配:对用户身份验证失败 " DB_USER"
我的解决方案是将/var/lib/pgsql/data/pg_hba.conf
中的所有身份验证方法更改为 md5
答案 2 :(得分:1)
如上所述,这个问题可能有两个原因 - testuser不存在 - 用户密码错误或身份验证失败。
以下是我在Windows中解决此问题的方法:
检查Server“PostgreSQL”下的“登录/组角色”选项卡。 检查用户是否存在。您也可以通过命令“psql -U postgres”并运行命令“\ du”
登录“postgres”用户来执行此操作如果用户testuser不存在,请创建它。