Как установить PostgreSQL на CentOS 8

Как установить PostgreSQL на CentOS 8

How to Install PostgreSQL on CentOS 8

30 Декабря 2019 | CentOS

В этом руководстве мы обсудим, как установить сервер базы данных PostgreSQL в CentOS 8. Прежде чем выбирать, какую версию устанавливать, убедитесь, что ваши приложения поддерживают ее.

Как установить PostgreSQL на CentOS 8

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

Также в этом руководстве мы рассмотрим основы администрирования баз данных PostgreSQL.

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

Установка PostgreSQL на CentOS 8 

На момент написания этой статьи для установки из стандартных репозиториев CentOS было доступно две версии сервера PostgreSQL: версия 9.6 и 10.0.

Чтобы просмотреть список доступных потоков модуля PostgreSQL, введите:


dnf module list postgresql


Вывод показывает, что модуль postgresql доступен с двумя потоками. Каждый поток имеет два профиля: сервер и клиент. По умолчанию используется поток 10 с сервером профилей:


CentOS-8 - AppStream
Name          Stream    Profiles              Summary
postgresql    10 [d]    client, server [d]    PostgreSQL server and client module
postgresql    9.6       client, server [d]    PostgreSQL server and client module
  1. Чтобы установить поток по умолчанию, сервер PostgreSQL версии 10.0 введите:

    sudo dnf install @postgresql:10
  2. Для установки сервера PostgreSQL версии 9.6 введите:

    sudo dnf install @postgresql:9.6 


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


sudo dnf install postgresql-contrib


После завершения установки инициализируйте базу данных PostgreSQL с помощью следующей команды:


sudo postgresql-setup initdb
Initializing database ... OK


Запустите службу PostgreSQL и включите ее при загрузке:


sudo systemctl enable --now postgresql


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


sudo -u postgres psql -c "SELECT version();"
PostgreSQL 10.6 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 8.2.1 20180905 (Red Hat 8.2.1-3), 64-bit

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

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

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

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

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

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

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


sudo su - postgrespsql

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

\q


Вы также можете получить доступ к приглашению PostgreSQL, не переключая пользователей с помощью sudo команды:


sudo -u postgres psql


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


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

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

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


  1. Сначала подключитесь к оболочке PostgreSQL:

    sudo -u postgres psql

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

    create role john;

  3. Создайте новую базу данных:

    create database johndb;

  4. Предоставьте пользователю права доступа к базе данных, выполнив следующий запрос:

    grant all privileges on database johndb to john;


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

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

Чтобы включить удаленный доступ к вашему серверу PostgreSQL, откройте файл конфигурации:


sudo nano /var/lib/pgsql/data/postgresql.conf


Прокрутите вниз до CONNECTIONS AND AUTHENTICATION раздела и добавьте / отредактируйте следующую строку:


/var/lib/pgsql/data/postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

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

Сохраните файл и перезапустите сервис PostgreSQL с помощью:


sudo systemctl restart postgresql


Проверьте изменения с помощью 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 файл.

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


/var/lib/pgsql/data/pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# The user jane can access all databases from all locations using an md5 password
host    all             jane            0.0.0.0/0                md5

# The user jane can access only the janedb database from all locations using an md5 password
host    janedb          jane            0.0.0.0/0                md5

# The user jane can access all databases from a trusted location (192.168.1.134) without a password
host    all             jane            192.168.1.134            trust

Вывод 

CentOS 8 предоставляет две версии PostgreSQL: 9.6 и 10.0.

Для получения дополнительной информации по этой теме посетите документацию PostgreSQL


    Комментарии

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

Загрузка комментариев...