Установка PostgreSQL на выделенном сервере

В этом разделе описан процесс установки СУБД PostgreSQL на выделенном сервере.

Требования к PostgreSQL

Для работы системы требуется реляционная СУБД:

  • рекомендуется PostgreSQL версии 15 или выше;

  • допустимо использование совместимых аналогов: Postgres Pro или Jatoba J4.

Установка PostgreSQL

Загрузите и установите PostgreSQL согласно инструкции с официального сайта.

Настройка PostgreSQL на выделенном сервере

Настройка сетевого интерфейса и порта

Прослушиваемые сервером PostgreSQL сетевой интерфейс и порт задаются в конфигурационном файле postgresql.conf.

Расположение файла зависит от используемой операционной системы:

  • В дистрибутивах Linux, основанных на Debian, файл postgresql.conf находится в директории /etc/postgresql/<version>/main/.

  • В дистрибутивах Linux, основанных на Red Hat, файл postgresql.conf находится в директории /var/lib/pgsql/<version>/data/.

Если вы используете иную операционную систему, расположение файла postgresql.conf может быть другим.

Чтобы настроить сетевой интерфейс и порт:

  1. Откройте файл postgresql.conf для редактирования.

  2. Задайте в параметре listen_addresses IP-адрес сервера PostgreSQL, который система будет использовать для подключения к базе данных.

  3. Задайте в параметре port порт, который будет прослушивать сервер PostgreSQL в ожидании подключений (по умолчанию — 5432).

  4. Сохраните и закройте файл postgresql.conf.

Настройка сетевого доступа кластера к PostgreSQL

Разрешения сетевого доступа клиентов к серверу PostgreSQL задаются в конфигурационном файле pg_hba.conf. Этот файл расположен в той же директории, что и файл postgresql.conf.

Чтобы настроить разрешения сетевого доступа:

  1. Откройте файл pg_hba.conf для редактирования.

  2. Разрешите подключение рабочих узлов кластера Kubernetes, добавив их адреса в виде строк:

    host all all worker-node-ip1/32 scram-sha-256
    host all all worker-node-ip2/32 scram-sha-256
    host all all worker-node-ipN/32 scram-sha-256

    где worker-node-ipX — IP-адреса рабочих узлов кластера, в котором развернута система. В зависимости от настроек PostgreSQL может использоваться алгоритм хэширования md5 вместо приведенного в примере scram-sha-256.

  3. Сохраните и закройте файл pg_hba.conf.

Применение параметров

Перезапустите PostgreSQL, выполнив следующую команду:

service postgresql restart

или

systemctl restart postgresql

Добавление пользователя PostgreSQL

При установке PostgreSQL создает суперпользователя postgres. По умолчанию пароль для его учетной записи не задан. Рекомендуется создавать для системы отдельного пользователя с надежным паролем. Пользователь должен обладать привилегией CREATEDB, которая позволяет создавать новые базы данных и становиться их владельцем.

Чтобы добавить пользователя:

  1. Переключитесь на пользователя postgres в командной строке:

    su postgres

    или

    sudo -i -u postgres
  2. Добавьте пользователя, выполнив следующую команду:

    createuser --createdb --pwprompt system-user

    или

    psql -c "CREATE USER \"system-user\" WITH CREATEDB PASSWORD 'yourpassword';"

    где system-user — пример имени нового пользователя (может быть другим), yourpassword — пример пароля.

  3. Пользователь добавлен. Завершите сеанс пользователя postgres командой exit.

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

Установка расширения uuid-ossp

Для работы PostgreSQL с данными типа UUID требуется установить расширение uuid-ossp. Для этого выполните следующие действия:

  1. Получите список доступных расширений, выполнив следующую команду:

    psql -c "SELECT * FROM pg_available_extensions;"
    Пример вывода списка доступных расширений
         name           | default_version | installed_version |                     comment
    --------------------+-----------------+-------------------+-------------------------------------------------------------------
     plpgsql            | 1.0             | 1.0               | PL/pgSQL procedural language
     pg_stat_statements | 1.9             |                   | track execution statistics of all SQL statements executed
     hstore             | 1.8             |                   | data type for storing sets of key/value pairs
     uuid-ossp          | 1.1             |                   | generate universally unique identifiers (UUIDs)
     pg_trgm            | 1.6             |                   | text similarity measurement and index searching based on trigrams

    Если в столбце name присутствует значение uuid-ossp и в строке uuid-ossp в столбце installed_version есть значение, дополнительных действий не требуется. Иначе переходите к следующим шагам.

  2. Если в столбце name значение uuid-ossp отсутствует, значит, расширение не входит в установленный вами дистрибутив PostgreSQL. Его можно скачать вместе с пакетом postgresql-contrib.

    Пример команды для скачивания postgresql-contrib для PostgreSQL 15 с помощью пакетного менеджера apt:

    sudo apt install postgresql-contrib-15
  3. Установите расширение uuid-ossp, выполнив следующую команду:

    psql -c "CREATE EXTENSION IF NOT EXISTS \"uuid-ossp\";"

Была ли полезна эта страница?

Обратная связь