Как настроить удаленное подключение к БД PostgreSQL из Windows

Настройка удаленного подключения к БД PostgreSQL 13 на сервере Ubuntu 18 LTS из ОС Windows 10 утилиты pgAdmin 4, двумя способами: подключение с помощью SSH туннеля и прямое подключение к серверу PostgreSQL.

? Я рекомендую использовать подключение через SSH туннель, простое в настройке и безопасное. При использовании SSH туннеля, порт PostgreSQL не открывается для внешних подключений.

Для использования SSH туннеля, необходимо настроить SSH сертификаты входа на Ubuntu.

pgAdmin — самая популярная и многофункциональная платформа для администрирования и разработки с открытым исходным кодом для PostgreSQL, самой совершенной базы данных с открытым исходным кодом в мире.

Официальный сайт pgAdmin

Узнать расположение файлов конфигурации PostgreSQL: postgresql.conf, pg_hba.conf.

ps aux | grep postgres | grep -- -D

Узнать порт PostgreSQL командой:

grep -H '^port' /etc/postgresql/*/main/postgresql.conf
Получить конфигурацию PostgreSQL

В примере, файл конфигурации PostgreSQL располагается по пути /etc/postgresql/13/main/postgresql.conf, порт подключения 5432.

Содержание

  1. SSH туннель к PostgreSQL
  2. Прямое подключение к PostgreSQL
  3. Частые вопросы

Статья на других языках:
?? – How to Setup Remote Access to PostgreSQL Database from Windows
?? – Cómo configurar el acceso remoto a la base datos PostgreSQL desde Windows

SSH туннель к PostgreSQL

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

Настройка pgAdmin на Windows 10:

  1. Запускаем pgAdmin
  2. Создаем новое подключение к серверу: Object -> Create -> Server;
  3. Вкладка General:
    1. Name: название сервера (произвольное);
  4. Вкладка Connection:
    1. Host Name: localhost;
    2. Port: 5432;
    3. Maintenance database: mybase;
    4. Username: postgres;
  5. Вкладка SSH Tunnel:
    1. Use SSH tunneling: Yes;
    2. Tunnel host: myserver-IP;
    3. Tunnel port: 58222;
    4. Username: root;
    5. Authentication: Identity file;
    6. Identity file: path_key.

? В качестве ключа указываем приватный ключ id_rsa из Настройка SSH сертификатов на сервере. Как изменить порт SSH в Частые вопросы.

Подключение к базе данных PostgreSQL через SSH туннель
Настройки pgAdmin для подключения через SSH туннель

Прямое подключение к PostgreSQL

Для настройки прямого подключения к PostgreSQL вносим изменения в файлы конфигурации postgresql.conf и pg_hba.conf

Настройка PostgreSQL

postgresql.conf

Файл postgresql.conf находится в папке установки PostgreSQL.

sudo nano /etc/postgresql/13/main/postgresql.conf

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

listen_addresses = '*'

Мы разрешили прослушивание запросов от всех IP-адресов.

Настройка файла postgresql.conf

? Возможные варианты:
listen_addresses = '0.0.0.0' чтобы слушать все IPv4;
listen_addresses = '::' чтобы слушать все IPv6;
listen_addresses = 'your.host.ip.adress' определенный адрес или список адресов через запятую.

pg_hba.conf

Файл pg_hba.conf находится в папке установки PostgreSQL.

Открываем на редактирование:

sudo nano /etc/postgresql/13/main/pg_hba.conf

Добавляем запись в секцию # IPv4 local connections:

host     mybd     postgres     41.223.232.15/32     md5

Запись разрешает подключение к БД mybd пользователю postgres с IP адресом 41.223.232.15, используя пароль.

Настройка pg_hba.conf

После изменения файлов конфигурации, перезапустите службу PostgreSQL.

systemctl restart postgresql

Настройка pgAdmin

Настройка прямого подключения к базе данных PostgreSQL через интернет или локальную сеть используя pgAdmin.

  1. Запустите pgAdmin
  2. Создаем новое подключение к серверу: Object -> Create -> Server;
  3. Вкладка General:
    1. Name: название сервера (произвольное);
  4. Вкладка Connection:
    1. Host Name: RemoteServerIP;
    2. Port: 5432;
    3. Maintenance database: mybase;
    4. Username: postgres.
Прямое подключение к базе данных PostgreSQL

Частые вопросы

PostgreSQL как узнать расположение файлов конфигурации?

ps aux | grep postgres | grep — -D

PostgreSQL как узнать порт?

grep -H ‘^port’ /etc/postgresql/*/main/postgresql.conf

SSH как узнать или изменить порт подключения?

Файл /etc/ssh/sshd_config , строка port.


Как настроить удаленное подключение к БД PostgreSQL из Windows обсуждалось в этой статье. Я надеюсь, что теперь вы сможете настроить pgAdmin для подключения к PostgreSQL (прямое подключение или используя SSH туннель). Однако, если вы столкнетесь с каким-то проблемами при настройке сервера или pgAdmin, не стесняйтесь написать в комментариях. Я постараюсь помочь.

Оставьте комментарий