Установка PostgreSQL на Red OS: пошаговая инструкция с настройкой | AdminWiki

Установка PostgreSQL на Red OS: Полное руководство для разработчиков и администраторов

18 декабря 2025 7 мин. чтения #Red OS #linux #postgresql #базы данных #настройка PostgreSQL #установка PostgreSQL

Представь, что тебе нужно развернуть надежную базу данных для нового проекта на российском дистрибутиве Red OS. PostgreSQL — отличный выбор, но как правильно его установить и настроить? Давай разберем этот процесс от начала до конца, как если бы я был твоим ментором по DevOps.

Что такое Red OS и почему PostgreSQL?

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

Важно: Red OS основан на RHEL, поэтому большинство команд и пакетов совместимы с CentOS/RHEL. Это упрощает миграцию с других enterprise-дистрибутивов.

Подготовка системы перед установкой

Перед тем как начать установку postgresql на ред ос, убедимся, что система готова:

bash
# Обновляем систему
sudo dnf update -y

# Проверяем текущие версии пакетов
sudo dnf list installed | grep postgres

# Если есть старые версии PostgreSQL, удаляем их
sudo dnf remove postgresql* -y

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

Хотя PostgreSQL есть в стандартных репозиториях, я рекомендую использовать официальный репозиторий для получения последней версии:

bash
# Устанавливаем репозиторий PostgreSQL для Red OS/RHEL 8+
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# Отключаем встроенный модуль PostgreSQL (если есть)
sudo dnf -qy module disable postgresql

Установка PostgreSQL на Red OS

Теперь перейдем непосредственно к установке. Выбери версию PostgreSQL, которая тебе нужна:

Доступные версии PostgreSQL:

  • PostgreSQL 16 (последняя стабильная)
  • PostgreSQL 15 (долгосрочная поддержка)
  • PostgreSQL 14
  • PostgreSQL 13
bash
# Устанавливаем PostgreSQL 16 (рекомендуемая версия)
sudo dnf install -y postgresql16-server postgresql16-contrib

# Или установи конкретную версию
# sudo dnf install -y postgresql15-server postgresql15-contrib
Внимание: Пакет postgresql-contrib содержит дополнительные модули и утилиты, которые часто бывают полезны. Рекомендую устанавливать его всегда.

Инициализация базы данных

После установки необходимо инициализировать кластер баз данных:

bash
# Инициализируем базу данных PostgreSQL
sudo /usr/pgsql-16/bin/postgresql-16-setup initdb

# Запускаем службу PostgreSQL
sudo systemctl start postgresql-16

# Включаем автозагрузку при старте системы
sudo systemctl enable postgresql-16

# Проверяем статус службы
sudo systemctl status postgresql-16

Базовая настройка PostgreSQL

Теперь настроим PostgreSQL для работы в production-среде. Основные конфигурационные файлы находятся в /var/lib/pgsql/16/data/.

Настройка аутентификации (pg_hba.conf)

Отредактируем файл аутентификации для безопасного доступа:

bash
# Резервное копирование оригинального файла
sudo cp /var/lib/pgsql/16/data/pg_hba.conf /var/lib/pgsql/16/data/pg_hba.conf.backup

# Редактируем файл
sudo nano /var/lib/pgsql/16/data/pg_hba.conf

Добавь или измени следующие строки для настройки доступа:

config
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# Локальные подключения через Unix-сокет
local   all             all                                     peer

# IPv4 локальные подключения
host    all             all             127.0.0.1/32            scram-sha-256

# IPv6 локальные подключения
host    all             all             ::1/128                 scram-sha-256

# Доступ из внутренней сети (измени 192.168.1.0/24 на свою сеть)
host    all             all             192.168.1.0/24          scram-sha-256

Настройка основных параметров (postgresql.conf)

Оптимизируем основные параметры для твоего железа:

config
# Редактируем основной конфигурационный файл
sudo nano /var/lib/pgsql/16/data/postgresql.conf

# Измени следующие параметры:
listen_addresses = 'localhost,192.168.1.100'  # IP твоего сервера
port = 5432                                   # Порт PostgreSQL
max_connections = 100                         # Максимальное количество подключений
shared_buffers = 256MB                        # 25% от доступной RAM
work_mem = 4MB                                # Память для операций сортировки
maintenance_work_mem = 64MB                   # Память для операций обслуживания
Совет: Для production-сервера с 8GB RAM рекомендую: shared_buffers = 2GB, work_mem = 16MB, maintenance_work_mem = 512MB.

Работа с PostgreSQL после установки

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

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

bash
# Переключаемся на пользователя postgres
sudo -i -u postgres

# Запускаем консоль PostgreSQL
psql

# В консоли PostgreSQL создаем нового пользователя
CREATE USER myuser WITH PASSWORD 'StrongPassword123!';

# Создаем базу данных
CREATE DATABASE mydb OWNER myuser;

# Даем все привилегии пользователю на базу данных
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;

# Выходим из консоли
\q

# Возвращаемся к своему пользователю
exit

Настройка брандмауэра

Если используешь firewalld, открой порт PostgreSQL:

bash
# Добавляем правило в firewalld
sudo firewall-cmd --permanent --add-service=postgresql

# Или открываем порт вручную
sudo firewall-cmd --permanent --add-port=5432/tcp

# Перезагружаем firewalld
sudo firewall-cmd --reload

# Проверяем, что порт открыт
sudo firewall-cmd --list-all

Проверка установки PostgreSQL

Убедимся, что установка postgresql ред ос прошла успешно:

bash
# Проверяем версию PostgreSQL
psql --version

# Проверяем подключение к базе данных
sudo -u postgres psql -c "SELECT version();"

# Показываем список баз данных
sudo -u postgres psql -c "\l"

# Проверяем статус службы
sudo systemctl status postgresql-16

Установка дополнительных инструментов

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

bash
# Устанавливаем pgAdmin (веб-интерфейс для управления)
sudo dnf install -y pgadmin4

# Устанавливаем утилиты для бэкапа
sudo dnf install -y pgbarman pgbackrest

# Устанавливаем клиентские библиотеки для разработки
sudo dnf install -y postgresql16-devel python3-psycopg2

Часто задаваемые вопросы (FAQ)

Как изменить пароль пользователя postgres?

Выполни команду:

bash
sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'NewStrongPassword';";

Где хранятся данные PostgreSQL на Red OS?

По умолчанию данные находятся в /var/lib/pgsql/16/data/. Конфигурационные файлы также расположены в этой директории.

Как настроить удаленный доступ к PostgreSQL?

1. В postgresql.conf измени listen_addresses = '*'

2. В pg_hba.conf добавь правило для твоего IP

3. Открой порт 5432 в брандмауэре

4. Перезагрузи PostgreSQL: sudo systemctl restart postgresql-16

Как обновить PostgreSQL до новой версии?

Используй утилиту pg_upgrade или сделай дамп и восстанови в новой версии. Всегда делай полный бэкап перед обновлением!

Таблица сравнения методов аутентификации

Метод Описание Безопасность Рекомендация
trust Без пароля Очень низкая Только для localhost в dev
md5 Хэш MD5 Средняя Устаревший, не рекомендуется
scram-sha-256 SCRAM с SHA-256 Высокая Рекомендуется для production
peer Проверка пользователя ОС Высокая Для локальных подключений

Заключение

Мы подробно разобрали процесс установки PostgreSQL на Red OS — от добавления репозитория до тонкой настройки конфигурационных файлов. Теперь у тебя есть полностью рабочая система управления базами данных, готовая к использованию в production-среде.

Запомни: После установки обязательно:
  • Сменить пароль пользователя postgres
  • Настроить регулярные бэкапы
  • Включить мониторинг производительности
  • Обновлять PostgreSQL при выходе новых security-патчей

Теперь ты можешь развертывать свои приложения с надежной базой данных на российском дистрибутиве. Удачи в разработке!

Поделиться:
Сохранить гайд? В закладки браузера