Как установить PostgreSQL на Debian 10

Установить PostgreSQL на Debian 10

PostgreSQL, часто называемая просто Postgres, — это объектно-реляционная система управления базами данных общего назначения с открытым исходным кодом. Она обладает множеством мощных функций, таких как онлайн-резервное копирование, восстановление на определенный момент времени, вложенные транзакции, SQL- и JSON-запросы, управление параллельными данными с помощью многоверсионного протокола (MVCC), асинхронная репликация и многое другое.

В этом руководстве вы узнаете, как установить сервер базы данных PostgreSQL на Debian 10. Мы также изучим основы базового администрирования баз данных.

Установка PostgreSQL

На момент написания этой статьи последней версией PostgreSQL, доступной в репозиториях Debian по умолчанию, была PostgreSQL версии 11.5.

Чтобы установить PostgreSQL на сервер Debian, выполните следующие действия как пользователь root или пользователь с привилегиями sudo :

  1. Начните с обновления индекса пакетов APT:

     sudo apt update
  2. Установите сервер PostgreSQL и дополнительный пакет, который предоставляет дополнительные функции для базы данных PostgreSQL:

     sudo apt install postgresql postgresql-contrib
  3. После завершения установки служба PostgreSQL запустится. Чтобы проверить установку, используйте утилиту psql , чтобы вывести версию сервера :

     sudo -u postgres psql -c "SELECT version();"

    Вывод должен выглядеть примерно так:

     PostgreSQL 11.5 (Debian 11.5-1+deb10u1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit

psql — интерактивная терминальная программа, позволяющая взаимодействовать с сервером PostgreSQL.

Роли и методы аутентификации PostgreSQL

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

PostgreSQL поддерживает несколько методов аутентификации . Наиболее часто используемые методы:

  • Доверие. Роль может подключаться без пароля, если соблюдены критерии, определенные в pg_hba.conf .
  • Пароль — роль может подключаться по паролю. Пароли могут храниться в формате scram-sha-256 md5 и password (открытым текстом).
  • Ident — поддерживается только для подключений TCP/IP. Работает путём получения имени пользователя операционной системы клиента с возможностью сопоставления имени пользователя.
  • Peer — то же, что и Ident, но поддерживается только для локальных подключений.

Аутентификация клиента PostgreSQL определяется в файле конфигурации pg_hba.conf . Для локальных подключений PostgreSQL настроен на использование метода аутентификации на основе одноранговой сети.

Пользователь «postgres» автоматически создаётся при установке PostgreSQL. Этот пользователь является суперпользователем для экземпляра PostgreSQL и эквивалентен пользователю root в MySQL.

Чтобы войти на сервер PostgreSQL как «postgres», переключитесь на пользователя postgres и откройте командную строку PostgreSQL с помощью утилиты psql :

 sudo su - postgres psql

Отсюда вы можете взаимодействовать с сервером PostgreSQL. Чтобы выйти из оболочки PostgreSQL, введите:

 q

Для доступа к командной строке PostgreSQL без смены пользователя можно использовать команду sudo :

 sudo -u postgres psql

Пользователь postgres обычно используется только с локального хоста.

Создание роли и базы данных PostgreSQL

Команда createuser позволяет создавать новые роли из командной строки. Создавать новые роли могут только суперпользователи и роли с привилегией CREATEROLE .

В следующем примере мы создадим новую роль с именем kylo , базу данных с именем kylodb и предоставим роли привилегии в базе данных.

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

     sudo su - postgres -c "createuser kylo"
  2. Далее создайте базу данных с помощью команды createdb :

     sudo su - postgres -c "createdb kylodb"
  3. Чтобы предоставить пользователю разрешения на доступ к базе данных, подключитесь к оболочке PostgreSQL:

     sudo -u postgres psql

    Выполните следующий запрос:

     GRANT ALL PRIVILEGES ON DATABASE kylodb TO kylo ;

Включить удаленный доступ к серверу PostgreSQL

По умолчанию сервер PostgreSQL прослушивает только локальный интерфейс 127.0.0.1 .

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

Откройте файл конфигурации postgresql.conf и добавьте listen_addresses = '*' в раздел CONNECTIONS AND AUTHENTICATION . Это заставит сервер прослушивать все сетевые интерфейсы.

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

/etc/postgresql/11/main/postgresql.conf

 #------------------------------------------------------------------------------ # CONNECTIONS AND AUTHENTICATION #------------------------------------------------------------------------------ # - Connection Settings - listen_addresses = '*' # what IP address(es) to listen on;

Сохраните файл и перезапустите службу PostgreSQL, чтобы изменения вступили в силу:

 sudo service postgresql restart

Проверьте изменения с помощью утилиты ss :

 ss -nlt | grep 5432
 LISTEN 0 128 0.0.0.0:5432 0.0.0.0:* LISTEN 0 128 [::]:5432 [::]:*

Вывод должен показать, что сервер PostgreSQL прослушивает все интерфейсы (0.0.0.0).

Последний шаг — настроить сервер для приема удаленных входов, отредактировав файл pg_hba.conf .

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

/etc/postgresql/11/main/pg_hba.conf

 # TYPE DATABASE USER ADDRESS METHOD # The user jane will be able to access all databases from all locations using an md5 password host all jane 0.0.0.0/0 md5 # The user jane will be able to access only the janedb from all locations using an md5 password host janedb jane 0.0.0.0/0 md5 # The user jane will be able to access all databases from a trusted location (192.168.1.134) without a password host all jane 192.168.1.134 trust

Заключение

Мы показали вам, как установить и настроить PostgreSQL в Debian 10. Более подробную информацию по этой теме можно найти в документации PostgreSQL .

Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.

База данных Debian PostgreSQL Не используете Debian 10?
Выберите другую ОС:
центос 7 центос 8 дебиан 10 убунту 18.04 убунту 20.04

Связанные руководства

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *