Системы управления реляционными базами данных являются ключевым компонентом многих веб-сайтов и приложений. Они предоставляют структурированный способ хранения, организации и доступа к информации.
PostgreSQL, или Postgres, — это система управления реляционными базами данных, которая обеспечивает имплементацию языка структурированных запросов, более известного как SQL. Она используется во многих популярных проектов, как в крупных, так и в небольших, соответствует стандартам и имеет множество продвинутых функций, таких как надежные транзакции и многопоточность без блокировок чтения.
Следуя указаниям этого руководства, вы установите последнюю версию PostgreSQL на сервер CentOS 8.
Шаг 1 — Установка PostgreSQL
PostgreSQL доступна в используемом по умолчанию репозитории программного обеспечения AppStream в CentOS 8 и имеет несколько версий, которые можно установить. Вы можете выбрать между этими версиями, активируя подходящий набор пакетов и зависимостей, которые соответствуют версии, которую вы хотите установить, а каждый набор называется потоком модуля.
В DNF, используемом по умолчанию в CentOS 8 менеджере пакетов, модули представляют собой наборы пакетов RPM, которые вместе составляют крупное приложение. Это необходимо, чтобы сделать установку пакетов и их зависимостей более интуитивно понятной для пользователей.
В первую очередь просмотрите список доступных потоков для модуля postgresql
с помощью команды dnf
:
dnf module list postgresql
Output
postgresql 9.6 client, server [d] PostgreSQL server and client module
postgresql 10 [d] client, server [d] PostgreSQL server and client module
postgresql 12 client, server PostgreSQL server and client module
В этом выводе вы можете видеть все три версии PostgreSQL из репозитория AppStream: 9.6
, 10
и 12
. Поток, который предоставляет Postgres версии 10, является потоком по умолчанию, о чем сигнализирует [d]
в его конце. Если вы хотите установить эту версию, запустите sudo dnf install postgresql-server
и перейдите к следующему шагу. Однако, хотя версия 10 до сих пор поддерживается, в этом обучающем руководстве мы будем устанавливать версию 12, последний релиз на момент написания.
Для установки PostgreSQL версии 12 необходимо активировать поток модуля этой версии. При активации потока модуля вы переопределяете поток по умолчанию и делаете все пакеты, связанные с активированным потоком, доступными в системе. Обратите внимание, что только один поток заданного модуля можно активировать в системе в один момент времени.
Чтобы активировать поток модуля для Postgres версии 12, запустите следующую команду:
sudo dnf module enable postgresql:12
Output
====================================================================
Package Architecture Version Repository Size
====================================================================
Enabling module streams:
postgresql 12
Transaction Summary
====================================================================
Is this ok [y/N]: y
Чтобы активировать поток модуля версии 12, вы можете установить пакет postgresql-server
для установки PostgreSQL 12 и всех зависимостей:
sudo dnf install postgresql-server
При появлении запроса подтвердите установку, нажав y
, а затем ENTER
:
Output
. . .
Install 4 Packages
Total download size: 16 M
Installed size: 62 M
Is this ok [y/N]: y
После установки программного обеспечения мы выполним ряд шагов инициализации для подготовки нового кластера базы данных для PostgreSQL.
Шаг 2 — Создание нового кластера баз данных PostgreSQL
Вам нужно создать новый кластер баз данных PostgreSQL, прежде чем вы сможете создавать таблицы и загружать в них данные. Кластер баз данных — это набор баз данных, управляемых одним экземпляром сервера. Создание кластера баз данных включает в себя создание директорий, в которых будут размещаться данные базы данных, создание таблиц общего каталога и создание баз данных template1
и postgres
.
База данных template1
представляет собой шаблон сортировок, который используется для создания новых баз данных, все, что хранится в template1
, даже объекты, которые вы добавляете самостоятельно, будут размещаться в новых базах данных при их создании. База данных postgres
— это база данных по умолчанию, предназначенная для пользователей, утилит и сторонних приложений.
Пакет Postgres, установленный на предыдущем шаге, содержит удобный скрипт с именем postgresql-setup
, который помогает администрированию кластеров баз данных на низком уровне. Для создания кластера баз данных запустите скрипт с помощью sudo
и опции --initdb
:
sudo postgresql-setup --initdb
Результат будет выглядеть следующим образом:
Output
* Initializing database in '/var/lib/pgsql/data'
* Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log
Теперь запустите службу PostgreSQL с помощью systemctl
:
sudo systemctl start postgresql
Затем воспользуйтесь systemctl
еще раз, чтобы активировать запуск службы при загрузке сервера:
sudo systemctl enable postgresql
Результат будет выглядеть следующим образом:
Created symlink /etc/systemd/system/multi-user.target.wants/postgresql.service → /usr/lib/systemd/system/postgresql.service.
Теперь, когда PostgreSQL запущен и работает, мы перейдем к использованию ролей, чтобы понять, как работает Postgres и чем он отличается от аналогичных систем управления базами данных, которые вы могли использовать в прошлом.
Шаг 3 — Использование ролей и баз данных PostgreSQL
PostgreSQL использует концепцию ролей для выполнения аутентификации и авторизации клиента. В некоторых аспектах они напоминают обычные учетные записи в Unix, однако Postgres не делает различий между пользователями и группами и предпочитает использовать более гибкий термин — роль.
После установки Postgres настроена на использование аутентификации ident, что значит, что выполняется привязка ролей Postgres с соответствующей системной учетной записью Unix/Linux. Если роль существует внутри Postgres, пользователь Unix/Linux с тем же именем может выполнить вход в качестве этой роли.
В ходе установки была создана учетную запись пользователя postgres, которая связана с используемой по умолчанию ролью postgres
. Чтобы использовать PostgreSQL, вы можете войти в эту учетную запись.
Существует несколько способов использования этой учетной записи для доступа к командной строке PostgreSQL.
Переключение на учетную запись postgres
Вы можете переключиться на учетную запись postgres на вашем сервере с помощью следующей команды:
sudo -i -u postgres
Теперь вы можете немедленно получить доступ к командной строке Postgres с помощью следующей команды:
psql
В результате вы можете получить доступ к командной строке PostgreSQL, а уже отсюда свободно взаимодействовать с системой управления базами данных.
Закройте командную строку PostgreSQL с помощью следующей команды:
\q
В результате вы вернетесь в командную строку Linux для учетной записи postgres. Теперь вернитесь к первоначальной учетной записи следующим образом:
exit
Свежие комментарии