Database

為什麼我無法連接到我的 PostgreSQL 數據庫?

  • May 22, 2013

我正在嘗試安裝tentd-admin

在此步驟中安裝失敗:

$ 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

問題

FATAL: Ident authentication failed for user "tent"

Postgres 正在嘗試使用ident身份驗證,但它沒有按預期工作。

解決方案

  1. 閱讀 Postgres 手冊,特別是關於身份驗證的部分pg_hba.conf部分ident
  2. 以下任一項
  • 意識到ident身份驗證不是您想要的並配置一些更合適的東西。
  • 修復您的 ident 使用者映射和/或您的identd守護程序,使其按 Postgres 的預期工作。

推薦

ident身份驗證非常糟糕(它是基於客戶端的安全性,並且對攻擊者撒謊是微不足道的)。

改為配置許多其他身份驗證方法之一(具有實際安全性)。

或者,如果您願意,可以使用身份驗證連接到本地(unix)套接字trust(但請注意,這有其自身的安全隱患)。

引用自:https://serverfault.com/questions/495803