PostgreSQL в Ubuntu — внешнее подключение к базе данных

Admin PostgreSQL

Внешнее подключение к 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:

find / -name postgresql.conf 2>/dev/null

Покажет один или несколько файлов. Открываем следующий файл (вместо 12 версии у вас может быть другая):

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

Находим строку:

#listen_addresses = 'localhost'         # what IP address(es) to listen on;

Меняем её на эту:

listen_addresses = '*'               # what IP address(es) to listen on;

Перезагружаем PostgreSQL:

sudo service postgresql restart

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.

Найдем файл конфигурации:

find / -name pg_hba.conf 2>/dev/null

Откроем его:

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

Меняем эту строку:

# host    all             all             127.0.0.1/32            md5

На эту:

host    all             all             0.0.0.0/0            md5

Перезагружаем PostgreSQL:

sudo service postgresql restart

После всех настроек нажимаем Test Connection. Должна появится следующая надпись:

Если вам пригодилась информация, вы можете поблагодарить автора сайта символическим пожертвованием:

Добавить комментарий

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи:
"PostgreSQL в Ubuntu — внешнее подключение к базе данных"