Categories: Шпаргалки

Как настроить сетевое подключение к PostgreSQL

Используемые термины: PostgreSQL , Linux .

По умолчанию, сервер баз данных pgsql разрешает подключение только с локального компьютера. Данная инструкция показывает, как разрешить подключения с удаленных систем.

Для настройки нам нужно будет внести изменения в два файла:

Рассмотрим подробнее обе правки.

Основной конфигурационный файл postgresql.conf

Для начала посмотрим путь расположения конфигурационного файла postgresql.conf :

su — postgres -c «psql -c ‘SHOW config_file;'»

Команда выдаст, примерно, следующее:

——————————————
/var/lib/pgsql/data/postgresql.conf
(1 row)

* нас интересует строчка /var/lib/pgsql/data/postgresql.conf — это путь расположения нужного нам конфигурационного файла.

Теперь открываем на редактирование основной файл конфигурации PostgreSQL по найденному пути:

vi /var/lib/pgsql/data/postgresql.conf

Находим и редактируем следующее:

listen_addresses = ‘*’

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

Чтобы изменения вступили в силу, перезапускаем службу postgresql:

systemctl restart postgresql

* данное имя службы ( postgresql ) может сильно отличаться, в зависимости от системы. Иногда, необходимо добавить версию postgresql или использовать другое имя. Стоит обратиться к документации, чтобы выяснить точное название сервиса.

Проверим, что настройка применилась:

ss -tunlp | grep 5432

* где 5432 — порт, на котором работает postgresql. Данный номер используется по умолчанию, но в вашей системе он может быть другим.

В ответ мы должны получить строку, содержащую что-то на подобие:

… 0.0.0.0:5432 …

Первые 0.0.0.0 говорят о том, что PostgreSQL слушает сетевые запросы на всех сетевых интерфейсах. Если мы ограничили прослушивание, настраивая опцию listen_addresses , то вместо нулей мы увидим конкретный IP, на котором разрешили работать службе.

Файл host-based authentication (pg_hba.conf)

Смотрим путь расположения конфигурационного файла pg_hba.conf :

su — postgres -c «psql -c ‘SHOW hba_file;'»

Команда выдаст, примерно, следующее:

———————————
/var/lib/pgsql/data/pg_hba.conf
(1 row)

Открываем на редактирование файл, путь до которого вернула команда выше:

vi /var/lib/pgsql/data/pg_hba.conf

Находим:

# IPv4 local connections:

и сразу под ним добавляем строку на подобие:

host all all 192.168.0.10/32 md5

* в данном примере мы:

  • разрешаем удаленные подключения к серверу с компьютера 192.168.0.10 .
  • доступ предоставляется всем базам (первое all ).
  • доступ предоставляется всем учетным записям (второе all ).
  • обратите внимание на md5 — способ хэширования пароля. В зависимости от версии postgresql может потребоваться использовать другой вариант.

** При желании, вместо all можно указать конкретные данные для повышения безопасности.

Чтобы изменения вступили в силу, перезапускаем службу postgresql:

systemctl restart postgresql

Проверка подключения

Проверить подключение можно с удаленного компьютера следующей командой:

psql -h 192.168.0.15 -U usersql

* где 192.168.0.15 — IP-адрес сервера баз данных; usersql — имя учетной записи, от которой идет подключение.

admin

Recent Posts

Настройка Mercurial по HTTPS

Иногда mercurial, при скачивании и комитах ругается на https. Особенно на самоподписанные сертификаты. Чтобы заработал…

2 недели ago

Компиляция libvirt в Ubuntu

Компиляция libvirt Подробнее

2 недели ago

Ошибка libvirt permission denied: решение

Если возникает ошибка libvirt destroy lxc permission denied , при попытке остановить контейнер: _x000D_# virsh…

2 недели ago

Настройка редиректа в NGINX

Файлы с примерами редиректа для nginx Подробнее

2 недели ago

Включение gzip в NGINX

Как включить gzip сжатие в Nginx ? Подробнее

2 недели ago

Удаление postinst-скрипта в Linux

Иногда возникает ситуация, когда криво настроенные пакеты не устанавливаются в системе. У меня это произошло…

2 недели ago