Настройка удаленного подключения к БД 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 располагается по пути /etc/postgresql/13/main/postgresql.conf, порт подключения 5432.
Содержание
Статья на других языках:
?? – 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:
- Запускаем pgAdmin
- Создаем новое подключение к серверу: Object -> Create -> Server;
- Вкладка General:
- Name: название сервера (произвольное);
- Вкладка Connection:
- Host Name: localhost;
- Port: 5432;
- Maintenance database: mybase;
- Username: postgres;
- Вкладка SSH Tunnel:
- Use SSH tunneling: Yes;
- Tunnel host: myserver-IP;
- Tunnel port: 58222;
- Username: root;
- Authentication: Identity file;
- Identity file: path_key.
? В качестве ключа указываем приватный ключ id_rsa из Настройка SSH сертификатов на сервере. Как изменить порт 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-адресов.
? Возможные варианты: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, используя пароль.
После изменения файлов конфигурации, перезапустите службу PostgreSQL.
systemctl restart postgresql
Настройка pgAdmin
Настройка прямого подключения к базе данных PostgreSQL через интернет или локальную сеть используя pgAdmin.
- Запустите pgAdmin
- Создаем новое подключение к серверу: Object -> Create -> Server;
- Вкладка General:
- Name: название сервера (произвольное);
- Вкладка Connection:
- Host Name: RemoteServerIP;
- Port: 5432;
- Maintenance database: mybase;
- Username: postgres.
Частые вопросы
ps aux | grep postgres | grep — -D
grep -H ‘^port’ /etc/postgresql/*/main/postgresql.conf
Файл /etc/ssh/sshd_config , строка port.
Как настроить удаленное подключение к БД PostgreSQL из Windows обсуждалось в этой статье. Я надеюсь, что теперь вы сможете настроить pgAdmin для подключения к PostgreSQL (прямое подключение или используя SSH туннель). Однако, если вы столкнетесь с каким-то проблемами при настройке сервера или pgAdmin, не стесняйтесь написать в комментариях. Я постараюсь помочь.