Гид по технологиям

Установка и базовая настройка PostgreSQL 13 на Rocky Linux

• 8 min read • Databases • Обновлено 21 Nov 2025
PostgreSQL 13 на Rocky Linux — установка и настройка
PostgreSQL 13 на Rocky Linux — установка и настройка

Обложка: лого PostgreSQL и сервер на Rocky Linux

PostgreSQL — это свободная и открытая система управления базами данных с акцентом на расширяемость и соответствие стандарта SQL. Это совершенная корпоративная реляционная СУБД, которая также поддерживает хранение и запросы JSON. За более чем 20 лет разработки сообщество сделало PostgreSQL устойчивой, гибкой и функционально насыщенной платформой, которой доверяют разработчики и администраторы.

В этом руководстве вы научитесь: добавлять официальный репозиторий PostgreSQL для Rocky Linux, устанавливать PostgreSQL 13, инициализировать кластер, включать службу, улучшать безопасность через смену аутентификации на scram-sha-256, создавать пользователей и базы, работать с таблицами и данными. В конце — советы по отладке, резервному копированию и эксплуатационным процедурам.

Основные варианты поиска (SEO):

  • Установка PostgreSQL на Rocky Linux
  • PostgreSQL 13 Rocky Linux установка
  • Как включить scram-sha-256 в PostgreSQL
  • Создать пользователя и базу PostgreSQL

Предпосылки

  • Сервер с Rocky Linux. Подходит версия 8 и совместимые сборки EL8.
  • Пользователь с правами root или sudo. Он будет использоваться для установки пакетов и системных изменений.

Важно: работайте в безопасной среде по умолчанию. На продуктиве заранее продумайте бэкапы и доступы.

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

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

  1. Добавьте репозиторий с помощью команды:
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
  1. Проверьте список репозиториев:
sudo dnf -qy repolist

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

Список репозиториев DNF с репозиторием PostgreSQL

Установка PostgreSQL 13 на Rocky Linux

По умолчанию в Rocky Linux включён модуль PostgreSQL. Чтобы установить пакет из официального репозитория, сначала отключите модуль и затем установите пакет postgresql13-server.

  1. Отключите встроенный модуль PostgreSQL:
sudo dnf module -qy disable postgresql

Пояснение: ключи -qy запускают dnf в тихом режиме и автоматически подтверждают ключи GPG.

Отключение модуля PostgreSQL в DNF

  1. Установите сервер PostgreSQL 13:
sudo dnf install postgresql13-server

Подтвердите установку, введя y, если будет запрос. Затем дождитесь завершения установки.

Установка PostgreSQL 13 через DNF

Инициализация базы данных и запуск службы

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

  1. Инициализация кластера данных:
sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
  1. Включение и запуск службы:
sudo systemctl enable postgresql-13
sudo systemctl start postgresql-13
  1. Проверка статуса:
sudo systemctl status postgresql-13

Если служба активна, вы увидите статус active (running). В противном случае — failed и логи, которые помогут в диагностике.

Статус службы PostgreSQL после запуска

Минимальная защита установки

При установке создаётся системный пользователь и одноимённый пользователь базы данных postgres. Для безопасности задайте надёжный пароль для системного пользователя и для учётной записи в самой базе.

  1. Смените пароль системного пользователя postgres:
passwd postgres

Введите новый пароль — используйте менеджер паролей и генерируйте случайные пароли достаточной длины.

  1. Смените пароль пользователя базы данных postgres. Сначала переключитесь на системного пользователя postgres и запустите psql:
su - postgres
psql

Внутри psql выполните:

ALTER USER postgres WITH PASSWORD 'strongpostgrespassword';

Затем выйдите из оболочки psql по Ctrl+D или командой \q.

Смена пароля для системного и базового пользователя postgres

Совет: избегайте хранения паролей в конфигурационных файлах в виде plain text. Для автоматизации используйте секретные хранилища.

Смена метода аутентификации на scram-sha-256

По умолчанию локальные соединения могут использовать peer-аутентификацию. В продакшене рекомендуется парольная аутентификация с шифрованием паролей — scram-sha-256.

  1. Проверьте расположение pg_hba.conf и текущий метод шифрования паролей:
sudo -u postgres psql
SHOW hba_file;
SHOW password_encryption;
\q

Обычно файл находится в /var/lib/pgsql/13/data, а default password_encryption для сборок RHEL-подобных — scram-sha-256.

Вывод местоположения конфигурации и метода шифрования паролей

  1. Отредактируйте файл pg_hba.conf:
cd /var/lib/pgsql/13/data/
nano pg_hba.conf

Внизу замените правила для локальных подключений на scram-sha-256:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     scram-sha-256
# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256

Сохраните и выйдите (Ctrl+X, Y, Enter).

  1. Примените изменения перезапуском службы:
sudo systemctl restart postgresql-13
  1. Проверьте вход в psql с запросом пароля:
su - postgres
psql

Вас попросят пароль для пользователя postgres. Если пароль правильный — вы попадёте в оболочку. Иначе увидите FATAL и сообщение об ошибке.

Проверка аутентификации PostgreSQL с паролем

Альтернативный способ входа:

# Войти как postgres
sudo -u postgres psql

# Войти как другой пользователь
sudo -u postgres psql -U username

Примеры входа в psql с разными пользователями

Примечание: если вы применяете scram-sha-256, убедитесь, что все клиенты PostgreSQL поддерживают этот метод. Старые клиенты и драйверы могут требовать md5.

Создание пользователя и базы для приложения

Далее создадим служебного пользователя и базу данных для приложения.

  1. Войдите в psql от имени postgres:
sudo -u postgres psql
  1. Создайте пользователя johndoe с правами создавать базы и роли, и с паролем:
CREATE USER johndoe WITH
CREATEDB
CREATEROLE
PASSWORD 'johndoestrongpassword';

Проверьте созданных пользователей:

\du

Создание нового пользователя PostgreSQL

  1. Создайте базу данных и назначьте владельца:
CREATE DATABASE johndoe OWNER johndoe;

Проверьте список баз данных:

\l

Отображение пользователей и баз данных в psql

Список баз данных с владельцами

Создание таблицы и работа с данными

  1. Войдите в psql под пользователем johndoe:
su - postgres
psql -U johndoe

Или однострочно:

sudo -u postgres psql -U johndoe

Введите пароль для пользователя johndoe.

Подключение к psql под пользователем johndoe

  1. Создайте таблицу users:
CREATE TABLE users (
   id INT PRIMARY KEY     NOT NULL,
   name           TEXT    NOT NULL,
   age            INT     NOT NULL,
   address        CHAR(50),
   salary         REAL
);

Посмотреть таблицы:

\d

Посмотреть столбцы таблицы:

\d users

Просмотр структуры таблицы users

  1. Вставьте данные:
INSERT INTO users (id,name,age,address,salary) VALUES (1, 'Paul', 32, 'California', 20000.00);
INSERT INTO users (id,name,age,address,salary) VALUES (2, 'Jesse', 35, 'Mexico', 30000.00);
INSERT INTO users (id,name,age,address,salary) VALUES (3, 'Linda', 27, 'Canada', 40000.00);
  1. Выведите все строки:
SELECT * FROM users;

Или только нужные столбцы:

SELECT name,age,salary FROM users;

Вывод данных из таблицы users

Рекомендации по безопасности и hardening

Важно обеспечить устойчивость и безопасность сервера БД. Ниже — практические рекомендации.

  • Обновления и патчи: регулярно применяйте обновления пакетов от PostgreSQL и системы.
  • Сеть: ограничьте доступ на уровне фаервола (firewalld/iptables) только для доверенных хостов.
  • Шифрование: используйте scram-sha-256 для паролей и TLS для клиентских подключений.
  • Резервные копии: настройте регулярные бэкапы (pg_dump, pg_basebackup, WAL-архивирование).
  • Привилегии: назначайте минимально необходимые права ролям.
  • Мониторинг: собирайте метрики и логи (pg_stat_statements, Prometheus exporter).
  • Логи: храните логи в централизованном хранилище для аудита.

Пример настройки SSL для PostgreSQL (кратко):

  • Сгенерируйте сертификаты и ключи.
  • Поместите их в /var/lib/pgsql/13/data и задайте права 600 на ключ.
  • В postgresql.conf включите ssl = on и укажите пути ssl_cert_file и ssl_key_file.

Критично: тестируйте конфигурацию на стенде перед применением в продуктиве.

Бэкап и восстановление — краткая методика

Выбор метода зависит от требований к RTO/RPO.

  • Logical backup (pg_dump): удобно для отдельных баз и переносов версий. Лёгкий и читаемый формат.
  • Physical backup (pg_basebackup + WAL): пригоден для быстрого восстановления всего кластера и настройки реплики.

Примеры команд:

Полный дамп базы:

sudo -u postgres pg_dump -Fc johndoe > /var/backups/johndoe.dump

Восстановление:

sudo -u postgres pg_restore -d johndoe /var/backups/johndoe.dump

Полный бэкап кластера с помощью pg_basebackup:

sudo -u postgres pg_basebackup -D /backup/pg13 -F tar -z -P

Отладка и диагностика — быстрые шаги

Если служба не запускается:

  1. Проверка статуса systemd:
sudo systemctl status postgresql-13
  1. Просмотр служебных логов:
sudo journalctl -u postgresql-13 --no-pager
  1. Проверка логов PostgreSQL в каталоге данных (/var/lib/pgsql/13/data/pg_log).
  2. Проверка прав на файлы ключей (если включён SSL).
  3. Проверка свободного места на диске и прав на каталог данных.

Частые ошибки:

  • Неверные права на каталог данных или ключи SSL.
  • Неправильный формат строки в pg_hba.conf.
  • Клиент не поддерживает scram-sha-256.

Миграция и совместимость

Если вы мигрируете с другой СУБД или версии PostgreSQL:

  • Для межверсий используйте pg_dump/pg_restore или logical replication.
  • Для простых переносов между серверами той же версии — используйте pg_basebackup или rsync при остановленной службе.
  • Проверьте совместимость своих приложений и драйверов с новым методом аутентификации и версией сервера.

Критерии приёмки

Перед сдачей инфраструктуры убедитесь, что:

  • Служба postgresql-13 запущена и enabled.
  • pg_hba.conf настроен и применён (scram-sha-256 при необходимости).
  • Пароли для системного и базового пользователей заданы и безопасно сохранены.
  • Созданы пользователь и база, приложение может подключиться и выполнить простые запросы.
  • Настроены регулярные бэкапы и проверено восстановление хотя бы на тестовом экземпляре.

Ролевые чеклисты

Администратор сервера:

  • Установить пакет postgresql13-server.
  • Инициализировать кластер и включить службу.
  • Настроить файервол и SELinux, если требуется.

Администратор БД:

  • Изменить метод аутентификации на scram-sha-256.
  • Создать пользователей и роли с минимальными правами.
  • Настроить схему бэкапов и тестовое восстановление.

Разработчик приложения:

  • Проверить драйвер на поддержку scram-sha-256.
  • Протестировать подключение с учётными данными новой БД.
  • Выполнить простые CRUD-операции и запросы производительности.

План действий при инциденте (runbook)

  1. Симптом: БД недоступна для приложений.
  2. Сбор информации: systemctl status, journalctl, проверка диска.
  3. Быстрая проверка: доступность порта 5432 с хоста приложения.
  4. Временное восстановление: запустить standby/replica если настроено.
  5. При необходимости — восстановить последнюю проверенную резервную копию на изолированном хосте.
  6. После восстановления — воспроизвести причину инцидента, скорректировать процедуры и задать план профилактики.

Тесты и критерии приёмки

  • Тест 1: Установка пакета завершается без ошибок.
  • Тест 2: Служба запускается и остаётся в состоянии active через 1 минуту.
  • Тест 3: Пользователь johndoe может подключиться и выполнить SELECT 3 строк в таблице users.
  • Тест 4: Восстановление дампа создает рабочую базу с теми же данными.

Критерий приёмки: все тесты должны проходить на тестовой среде и быть документированы.

Частые ошибки и когда предложенные шаги не подходят

  • Если у вас распределённый кластер с репликацией или Patroni — инициализация и управление службами отличаются. В таких случаях используйте встроенные инструменты кластера.
  • Если клиенты старые и не поддерживают scram-sha-256, переход на этот метод приведёт к отказам подключения. Для таких клиентов используйте md5 или обновите драйверы.
  • На системах с кастомными путями данных команды и пути к pg_hba.conf могут отличаться.

Небольшой справочник по командам (cheat sheet)

  • Установить репозиторий: dnf install https://download.postgresql.org/…
  • Отключить модуль: dnf module -qy disable postgresql
  • Установить server: dnf install postgresql13-server
  • Инициализировать: /usr/pgsql-13/bin/postgresql-13-setup initdb
  • Управление службой: systemctl start|stop|restart|status postgresql-13
  • Войти в psql: sudo -u postgres psql
  • Создать пользователя: CREATE USER name WITH PASSWORD ‘pwd’;
  • Создать базу: CREATE DATABASE name OWNER name;
  • Дамп базы: pg_dump -Fc dbname > file.dump
  • Восстановление: pg_restore -d dbname file.dump

Факт-бокс: ключевые пункты

  • Версия: PostgreSQL 13 (в примерах — 13.4). Используйте стабильную ветку на момент установки.
  • Местоположение данных: /var/lib/pgsql/13/data
  • Файл конфигурации аутентификации: pg_hba.conf
  • Рекомендуемый метод паролей: scram-sha-256
  • Простой метод бэкапа: pg_dump (логический), pg_basebackup (физический)

Краткое резюме

Вы научились добавлять официальный репозиторий PostgreSQL, устанавливать PostgreSQL 13 из него, инициализировать и запускать службу, переводить аутентификацию на scram-sha-256, создавать пользователей и базы данных, а также выполнять базовые операции с таблицами и данными. Дополнительно приведены рекомендации по безопасности, бэкапам, отладке и чеклисты для ролей.

Важно: перед применением настроек в продуктиве проверьте совместимость клиентов и наличие процесса восстановления по бэкапам.

Содержание для социальных сетей

OG текст для соцсетей и превью: PostgreSQL 13 на Rocky Linux — быстрый старт: установка, безопасность, scram-sha-256, создание пользователя и базы, бэкапы и отладка.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро