Содержание

Предыдущий раздел

Не удается подключиться к базе данных (could not connect to server: Connection refused)

Следующий раздел

Перенос таблиц между базами данных

Не удается подключиться к базе данных (no pg_hba.conf entry for host "xxx.xxx.xxx.xxx"...)

$ psql -U my_login -h 10.0.0.101 postgres

psql: FATAL:  no pg_hba.conf entry for host "10.0.0.1", user "my_login", database "postgres", SSL on
FATAL:  no pg_hba.conf entry for host "10.0.0.1", user "my_login", database "postgres", SSL off

Подобная ошибка возникает, если для пользователя my_login не указано, что он может подключаться с ip-адреса 10.0.0.1

Решение

Настройка доступа к базе данных осуществляется через файл pg_hba.conf. Найти его можно командой:

$ find / -name pg_hba.conf 2>/dev/null

/etc/postgresql/9.2/main/pg_hba.conf

Необходимо добавить в файл новую строку, которая разрешит доступ логина my_login к любой базе данных с ip-адреса 10.0.0.1:

host    all             my_login         10.0.0.1/32            md5

После этого необходимо обновить конфигурацию сервера командой:

$ sudo service postgresql reload

* Reloading PostgreSQL 9.2 database server                                                                                                  [ OK ]

Теперь можно попробовать подключиться к базе данных:

$ psql -U my_login -h 10.0.0.101 postgres

Password for user my_login: *****
psql (9.2.1)
Type "help" for help.

postgres=#

или же может появится ошибка:

psql: FATAL:  password authentication failed for user "my_login"
FATAL:  password authentication failed for user "my_login"

это ошибка возникает, если введен неверный пароль для указанного пользователя или пользователь в базе данных не существует. В этом случае поможет рецепт как создавать пользователей

Дополнительная информация

PostgreSQL Documentation: The pg_hba.conf File

comments powered by Disqus