Database
為什麼我無法連接到我的 PostgreSQL 數據庫?
我正在嘗試安裝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
身份驗證,但它沒有按預期工作。解決方案
- 閱讀 Postgres 手冊,特別是關於身份驗證的部分
pg_hba.conf
和部分ident
。- 以下任一項
- 意識到
ident
身份驗證不是您想要的並配置一些更合適的東西。- 修復您的 ident 使用者映射和/或您的
identd
守護程序,使其按 Postgres 的預期工作。推薦
ident
身份驗證非常糟糕(它是基於客戶端的安全性,並且對攻擊者撒謊是微不足道的)。改為配置許多其他身份驗證方法之一(具有實際安全性)。
或者,如果您願意,可以使用身份驗證連接到本地(unix)套接字
trust
(但請注意,這有其自身的安全隱患)。