psql:严重:用户"用户名"的身份验证失败错误和解决方案

时间:2020-01-09 10:43:05  来源:igfitidea点击:

问题描述:我已经在Red Hat Enterprise Linux 5.x服务器下安装了Postgresql。
我已经创建了用户名/密码和数据库。
但是,当我尝试使用以下语法通过PHP或者psql连接它时:

psql -d myDb -U用户名-W

它给我一个错误,内容如下:

psql: FATAL: Ident authentication failed for user username
psql:严重:用户名的身份验证失败

如何解决此错误?

答:要解决此错误,请打开PostgreSQL客户端身份验证配置文件/var/lib/pgsql/data/pg_hba.conf:

# vi /var/lib/pgsql/data/pg_hba.conf

该文件控制:

  • 允许哪些主机连接
  • 客户端如何认证
  • 他们可以使用哪些PostgreSQL用户名
  • 他们可以访问哪些数据库

默认情况下,Postgresql使用基于IDENT的身份验证。
您要做的就是允许您的网络或者Web服务器基于用户名和密码的身份验证。

IDENT绝对不允许您通过-U和-W选项登录。
追加以下内容以仅允许通过本地主机登录:

local	all	all	trust
host	all	127.0.0.1/32	trust

保存并关闭文件。
重新启动Postgresql服务器:

# service postgresql restart

现在,您应该可以使用以下命令登录:

$ psql -d myDb -U username -W