为什么我无法连接到我的 PostgreSQL 数据库?

为什么我无法连接到我的 PostgreSQL 数据库?

我正在尝试安装tentd 管理员

在此步骤中安装失败:

$ DATABASE_URL=postgres://localhost/tent_server bundle exec rake db:migrate

我也尝试过这个:

$ DATABASE_URL=postgres://tent:tent@localhost/tent_server bundle exec rake db:migrate

我收到的错误信息是:

Error: Sequel::DatabaseConnectionError: PG::Error: FATAL:  Ident authentication failed for user "tent"
/usr/local/rvm/gems/ruby-1.9.3-p392/gems/sequel-3.43.0/lib/sequel/adapters/postgres.rb:208:in `initialize'

我的 Postgres 设置如下:

$ cat ~/.pgpass
localhost:5432:tent_server:tent:tent

postgres=# CREATE USER tent WITH password 'tent';
CREATE ROLE

postgres=# CREATE DATABASE tent_server with OWNER tent;
CREATE DATABASE

答案1

问题

FATAL: Ident authentication failed for user "tent"
Postgres 正在尝试使用ident身份验证,但它没有按预期工作。

解决方案

  1. 阅读 Postgres 手册,特别是部分pg_hba.confident身份验证部分
  2. 以下任一项
    • 意识到ident身份验证不是你想要的并配置更合适的东西
    • 修复您的 ident 用户映射和/或您的identd守护进程,以便按照 Postgres 预期的方式工作。

推荐

ident身份验证非常糟糕(它是基于客户端的安全性,对于攻击者来说,谎报您的身份是小菜一碟)。
请配置其他多种身份验证方法之一(具有实际安全性)。

或者,如果您愿意,可以使用身份验证连接到本地(unix)套接字trust(但请注意,这本身具有安全隐患)。

相关内容