Thursday, July 9, 2015

PostreSQL settings to allow remote connect

Открываем следующий файл на PostgreSQL сервере
C:\Program Files\PostgreSQL\9.4\data\pg_hba.conf

Добавляем строку:

host    all             my_login         your_ip/32            md5

Не удается подключиться к базе данных (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"
это ошибка возникает, если введен неверный пароль для указанного пользователя или пользователь в базе данных не существует. В этом случае поможет рецепт как создавать пользователей

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

No comments: