Внешнее подключение к PostgreSQL, который настроен на сервере Ubuntu через программы PhpStorm, PyCharm или DataGrip.
В статье предполагается, что у вас есть первичная настройка сервера на Ubuntu. Это означает в том числе, что у вас отключен вход на сервер по паролю и настроен вход на сервер через SSH протокол.
Подключение к PostgreSQL в PhpStorm, PyCharm или DataGrip
Настраиваем SSH
Открываем вкладку подключения к базе данных, выбираем PostgreSQL и переходим ко вкладке SSH/SSL:
Ставим галочку возле пункта Use SSH tunnel и переходим по кнопке … к дальнейшей настройке:
Здесь:
Host — вводим ip адрес своего сервера
User name — пользователь Linux системы
Authentication type — выбираем OpenSSH config and authentication agent.
Далее нажимаем на кнопку Test Connection. Должны увидеть надпись Successfully connected!.
После успешного подключения к серверу по протоколу SSH настроим подключение к самой базе данных.
Подключение к базе данных
Открываем вкладку подключения к базе данных и выбираем PostgreSQL:
Host — вводим ip адрес своего сервера
User — пользователь в БД
Password — пароль этого пользователя в БД
Database — название базы данных
URL — сформируется сам
Как создать базу данных, пользователя и пароль к нему есть в статье PostgreSQL.
В базовой конфигурации PostgreSQL внешнее подключение закрыто. При попытке подключиться будут возникать ошибки. Разберем каждую из них и откроем внешний доступ.
postgresql.conf
Для исправления ошибки:
[08001] The connection attempt failed.
java.net.SocketException: Connection reset.
Поправим конфигурацию в файле postgresql.conf.
Сейчас удаленный сервер сообщает, что соединение не было распознано. Самая вероятная причина — закрыт доступ.
Найдем файл postgresql.conf:
Покажет один или несколько файлов. Открываем следующий файл (вместо 12 версии у вас может быть другая):
Находим строку:
Меняем её на эту:
Перезагружаем PostgreSQL:
pg_hba.conf
Для исправления следующей ошибки:
The specified database user/password combination is rejected: [28000] FATAL: no pg_hba.conf entry for host «111.111.111.111», user «ploshadka», database «ploshadka», SSL on
Поправим конфигурацию в файле pg_hba.conf.
Найдем файл конфигурации:
Откроем его:
Меняем эту строку:
На эту:
Перезагружаем PostgreSQL:
После всех настроек нажимаем Test Connection. Должна появится следующая надпись: