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 — внешнее подключение к базе данных"