我已经在我的Ubuntu karma box上安装了PostgreSQL和pgAdminIII。

我能够成功地使用pgAdminIII(即连接/登录),但是当我尝试在命令行(使用psql)上使用相同的用户名/pwd登录到服务器时,我得到错误:

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

现在有人知道如何解决这个问题吗?


当前回答

解决这个问题的一个方法是编辑pg_hba.conf

sudo vi /etc/postgresql/9.3/main/pg_hba.conf

暂时

# Database administrative login by Unix domain socket
local   all             postgres                                   trust

至此,您就完成了。为了安全,那就去吧

sudo -u postgres psql template1
ALTER USER postgres with encrypted password 'your_password';

然后返回,将pg_hba.conf设置为

# Database administrative login by Unix domain socket
local   all             postgres                                   md5

其他回答

我发现我必须安装一个身份服务器,在113端口上监听。

sudo apt-get install pidentd
sudo service postgresql restart

然后身份就起作用了。

如果你做了所有这些,它仍然不工作,检查该用户的到期:

Postgres密码认证失败

以防以上方法都不适合你: 我已经安装了不少Postgres,但今天在RedHat 6.5系统上(安装Postgres 9.3)却被搞糊涂了。Aron在上面展示的典型hba.conf配置不起作用。原来我的系统使用的是IPV6,而忽略了IPV4配置。添加一行:

host    all             all             ::1/128                 password

允许我成功登录。

我只需要简单地添加-h localhost位就可以工作了

可以设置环境变量PGHOST=localhost:

$ psql -U db_user db_name
psql: FATAL:  Peer authentication failed for user "db_user"

$ export PGHOST=localhost
$ psql -U db_user db_name

Password for user mfonline: