Назад | Перейти на главную страницу

Почему я не могу подключиться к своей базе данных PostgreSQL?

Я пытаюсь установить палатка-админ.

На этом этапе установка не выполняется:

$ 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 аутентификация - это не то, что вы хотите и настроить что-то более подходящее.
    • Исправьте отображение идентификатора пользователя и / или свой identd демон должен работать так, как ожидает Постгрес.

Рекомендация

ident проверка подлинности - это довольно мерзко (это безопасность на основе клиента, и злоумышленник не лжет о том, кто вы такой).
Вместо этого настройте один из многих других методов аутентификации (с фактической безопасностью).

В качестве альтернативы подключитесь к локальному (unix) сокету, используя trust проверка подлинности, если вы предпочитаете (но обратите внимание, что это имеет собственные последствия для безопасности).