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

Установить PostgreSQL на CentOS 8

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

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

Мы также изучим основы администрирования баз данных 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 (открытым текстом).
  • Ident — поддерживается только для соединений TCP/IP. Работает путём получения имени пользователя операционной системы клиента с возможностью сопоставления имени пользователя.
  • Peer — то же, что и Ident, но поддерживается только для локальных подключений.

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

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

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

 sudo su - postgres psql

Отсюда вы можете взаимодействовать с экземпляром 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.

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

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

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

Источник

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

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