Найти тему

Установка и использование PostgreSQL на VPS сервер Ubuntu 18.04 и подключение PyCharm к базе данных

Оглавление

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

Принцип взаимодействия: На удаленном сервере развернута база данных, по SSH туннелю подключаю PyCharm к ней по порту 5432.

Создание нового пользователя на VDS сервере.

После того, как вы вошли в систему как root , вы можете создать нового пользователя, который с этого момента будет вашим обычным системным пользователем.

Еще одно предположение, которое система аутентификации Postgres использует по умолчанию, состоит в том, что для любой роли, используемой для входа, существует база данных с тем же именем, к который роль может получить доступ.

Это означает, что если созданный вами в последнем разделе пользователь будет иметь имя example, эта роль попытается подключиться к базе данных, которая также называется «example» по умолчанию.

Создадим нового пользователя с именем example, но вы должны заменить его именем пользователя по вашему выбору:

adduser example

Вам будет задано несколько вопросов, начиная с пароля учетной записи.

При желании, укажите любую дополнительную информацию, если хотите. Это не обязательно, и вы можете просто нажать ENTER на любое поле, которое хотите пропустить.

Теперь дадим вашему пользователю так называемые «суперпользовательские» или привилегии root для своей обычной учетной записи. Это позволит вашему обычному пользователю запускать команды с правами администратора, добавляя перед каждой командой слово sudo.

От имени пользователя root выполните эту команду, чтобы добавить нового пользователя в группу sudo (замените выделенное слово новым пользователем):

usermod -aG sudo example

Обратите внимание на -a аргумент, который расшифровывается как append . Без этой опции текущие группы, к которым привязан пользователь, будут заменены на sudo, что приведет к неожиданным последствиям. Аргумент -G указывает usermodизменить настройки группы пользователя.

Теперь ваш системный пользователь настроен.

Установка PostgreSQL.

Ввести данные команды от root пользователя:

sudo apt update
sudo apt install postgresql postgresql-contrib

Вы можете переключиться на учетную запись postgres на входе сервера с помощью команды:

sudo -i -u postgres

Можете создать нового пользователя postgres с помощью этой команды:

postgres@server:~$ createuser --interactive

Скрипт будет предлагать варианты на выбор и, исходя из ваших ответов, выполнить команду createuser для создания пользователя в соответствии с вашими предпочтениями (создавайте пользователя как в ученой записи, которую мы создавали выше).

Output
Enter name of role to add: example
Shall the new role be a superuser? (y/n) y

В результате этих действий у вас будет новый пользователь.

Открытие порта 5432 для удаленной работы с базой данных.

Данный пункт очень важен, так как я из-за своей некомпетентности потратил очень много времени на решение проблемы, что SSH туннель в PyCharm не поднимался к PostgreSQL, хотя SSH соединение было стабильным.

Во-первых, рекомендую проверь доступность порта 5432 на любом ресурсе, но я использовал REG.RU:

Проверка доступных портов REG.RU

Если он, также как было у меня, закрыт, то необходимо на сервере открыть файл postgresql.conf (его возможно изменить только от root пользователя, поэтому рекомендую в командой строке ввести su, после чего пароль от root пользователя).

Теперь введите следующую команду:

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

После чего изменить строчку listen_addresses = 'localhost' на listen_addresses = '*'

Нажмите комбинацию клавиш: Ctrl+s и Ctrl+x

Теперь необходимо внести настройки в файл pg_hba.conf. Откроем файл командой:

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

Добавить (то что помечено # вставлять не нужно. Исключительно для понимания что вставляете в то место):

# TYPE DATABASE USER ADDRESS METHOD
host all all 0.0.0.0/0 md5

Также в конец добавить :

# Allow replication connections from localhost, by a user with the
# replication privilege.
host all all 192.168.1.0/24 md5
host all all 192.168.0.0/24 password

после чего перезапустить сервис postgresql:

sudo service postgresql restart

Подключение PyCharm к базе данных PostgreSQL.

После запуска PyCharm необходимо установить SSH соединение с сервером (я устанавливал соединение сразу с пользователем к которому прицеплена база данных).

Добавьте конфигурации SSH: File | Settings/Preferences | Tools | SSH Configurations

Вводим все необходимые данные от ученной записи на сервере и нажимаем кнопку Test Connection, после чего получаете уведомление об успешном соединении:

-2

Закрываем настройки.

Справа нажимаем Database или В окне инструмента (View | Tool Windows | Database) щелкните Data Source Properties.

На вкладке Data Sources в диалоговом окне Data Sources and Drivers щелкните значок Add и выберите PostgreSQL.

В нижней части области настроек источника данных щелкните ссылку Download missing driver files.

Введите все необходимые данные от базы данных, а в окне SSH/SSL и выберите ранее созданную конфигурацию SSH.

Нажмите Test Connection внизу, чтобы проверить соединение. После успешного соединения нажать Apply и Ok или просто Ok.

Все готово, PyCharm подключен к удаленной базе данных PostgreSQL.

Источники:

https://www.jetbrains.com/help/pycharm/postgresql.html

https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-18-04-ru

https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-18-04