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

Установка и настройка pgAdmin4 на Rocky Linux 8

11 min read Базы данных Обновлено 18 Nov 2025
pgAdmin4 на Rocky Linux 8 — установка и настройка
pgAdmin4 на Rocky Linux 8 — установка и настройка

Изображение: Панель управления pgAdmin4 с подключённой базой данных PostgreSQL

Введение

pgAdmin — бесплатный и открытый графический инструмент администрирования для PostgreSQL, одного из наиболее развитых open-source СУБД. pgAdmin предоставляет богатый набор функций и удобный интерфейс. Он поддерживает PostgreSQL 9.6 и выше и работает в нескольких режимах: настольный, серверный и контейнерный.

В этом руководстве подробно описано, как установить pgAdmin4 на Rocky Linux 8, настроить его через веб-сервер Apache (httpd), подключить к локальной установке PostgreSQL и выполнить базовые административные задачи.

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

Определение терминов в одну строку:

  • pgAdmin4 — веб/десктоп интерфейс для управления PostgreSQL.
  • PostgreSQL — объектно-реляционная СУБД с открытым исходным кодом.

Что вы получите после выполнения инструкции

  • Рабочий pgAdmin4, доступный по URL http://<адрес_сервера>/pgadmin4
  • Настроенный Apache для обслуживания pgAdmin4
  • Локальный PostgreSQL с аутентификацией scram-sha-256
  • Примеры создания пользователя и базы данных через pgAdmin4
  • Контрольный список, рекомендации по безопасности и план отката

Важно: перед началом убедитесь, что у вас есть доступ root или привилегии sudo на сервере Rocky Linux 8 и что вы понимаете базовые команды systemd и dnf.


Содержание

  • Предварительные требования
  • Установка PostgreSQL на Rocky Linux 8
  • Установка pgAdmin4 и настройка Apache
  • Доступ и проверка установки
  • Подключение к PostgreSQL через pgAdmin4
  • Базовые операции в pgAdmin4: создание пользователя и базы данных
  • Тестирование и критерии приёмки
  • Безопасность и рекомендации для продакшена
  • План отката и инцидентный runbook
  • Роли и контрольные списки
  • Часто задаваемые вопросы
  • Краткое резюме

Предварительные требования

  • Сервер Rocky Linux 8 с подключением к интернету.
  • Учётная запись с правами root или sudo.
  • Рекомендуется обновить систему перед началом:
sudo dnf update -y
  • Рекомендуемый минимум: 2 CPU, 2 ГБ ОЗУ для лёгкой рабочей нагрузки. В продакшене используйте больше ресурсов.

Примечание: если вы планируете обслуживать pgAdmin4 публично, подготовьте DNS-запись и сертификат TLS (Let’s Encrypt или другой CA).

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

Если PostgreSQL уже установлен — переходите к разделу установки pgAdmin4. В противном случае используйте пакетный модуль, доступный в репозиториях Rocky Linux.

  1. Просмотрите доступные модули PostgreSQL:
sudo dnf module list postgresql
  1. Включите модуль PostgreSQL 13 (пример). Вы можете выбрать другую поддерживаемую версию:
sudo dnf module enable postgresql:13

Подтвердите ввод, нажав y.

  1. Установите пакеты сервера PostgreSQL:
sudo dnf install postgresql postgresql-server -y
  1. Инициализируйте базу данных:
sudo postgresql-setup --initdb
  1. Настройте шифрование паролей и метод аутентификации:

Откройте файл конфигурации:

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

Найдите и разкомментируйте параметр password_encryption, установите значение scram-sha-256:

password_encryption = scram-sha-256

Сохраните файл и перейдите к редактированию pg_hba.conf:

sudo nano pg_hba.conf

Убедитесь, что локальные подключения используют scram-sha-256 для хостов 127.0.0.1/32 и ::1/128. Пример фрагмента:

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# 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

Примечание: для socket-подключений (local) вы можете оставить peer, если планируете использовать системных пользователей ОС для аутентификации. Если требуется парольная аутентификация, замените local на “md5” или другое подходящее значение.

  1. Включите и запустите службу PostgreSQL:
sudo systemctl enable postgresql
sudo systemctl start postgresql
sudo systemctl status postgresql
  1. Установите пароль для суперапользователя postgres:
sudo -u postgres psql
ALTER USER postgres WITH PASSWORD 'strongpostgrespassword';
\q

Замените strongpostgrespassword на надёжный пароль. Храните его в менеджере паролей.

Проверка: подключитесь локально с помощью psql, чтобы убедиться, что аутентификация работает.

psql -U postgres -h 127.0.0.1 -W

Установка pgAdmin4 и настройка Apache

pgAdmin4 предоставляет собственный репозиторий для RHEL-подобных дистрибутивов.

  1. Импорт ключа и установите репозиторий:
rpm --import https://www.pgadmin.org/static/packages_pgadmin_org.pub
sudo rpm -i https://ftp.postgresql.org/pub/pgadmin/pgadmin4/yum/pgadmin4-redhat-repo-2-1.noarch.rpm
  1. Установите пакет web-интерфейса pgAdmin4:
sudo dnf install pgadmin4-web -y

Пакет автоматически подтянет Apache (httpd) и зависимости.

  1. Запустите скрипт настройки веб-интерфейса:
/usr/pgadmin4/bin/setup-web.sh

Скрипт попросит указать email и пароль администратора pgAdmin4. Этот аккаунт используется для входа в веб-интерфейс. После ввода учётных данных скрипт предложит сгенерировать конфигурацию Apache и включить её — подтвердите.

  1. Проверьте, что сгенерирован конфигурационный файл Apache для pgAdmin4. Обычно он располагается в /etc/httpd/conf.d/pgadmin4.conf. Пример содержимого может включать alias /pgadmin4/ к каталогу установки.

  2. Запустите и включите Apache:

sudo systemctl enable httpd
sudo systemctl start httpd
sudo systemctl status httpd
  1. Базовый доступ: откройте браузер и перейдите по адресу http:///pgadmin4. Вы увидите страницу входа pgAdmin4.

Заметки про SELinux и firewall:

  • Если SELinux включён (Enforcing), разрешите доступ Apache к сокетам и сетевым соединениям:
sudo setsebool -P httpd_can_network_connect on
  • Откройте HTTP/HTTPS в firewalld, если используется:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

Альтернативы развёртывания

Вы можете запускать pgAdmin в трёх режимах. Выбор зависит от сценария:

  • Настольный режим — установка на локальную машину разработчика.
  • Серверный режим — установка, описанная в этом руководстве, подходит для нескольких пользователей по сети.
  • Контейнерный режим — использование официального docker-образа pgAdmin4, удобно для тестовых и изолированных окружений.

Пример быстрой команды для контейнера:

docker run -p 80:80 --name pgadmin -e 'PGADMIN_DEFAULT_EMAIL=admin@example.com' -e 'PGADMIN_DEFAULT_PASSWORD=secret' dpage/pgadmin4

Контейнеры дают удобство изоляции, но в продакшене потребуется аккуратно настраивать хранилище и доступ к сертификатам.

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

Откройте браузер и перейдите по адресу:

http:///pgadmin4

Войдите, используя email и пароль, указанные при запуске setup-web.sh. После успешного входа вы увидите рабочий стол pgAdmin4.

Если страница не открывается:

  • Проверьте статус Apache: sudo systemctl status httpd
  • Проверьте логи Apache: sudo journalctl -u httpd –no-pager
  • Проверьте права доступа к каталогу установки pgAdmin4 и файл конфигурации в /etc/httpd/conf.d/
  • Убедитесь в отсутствии блокирующих правил SELinux или firewall

Подключение к PostgreSQL через pgAdmin4

  1. На рабочем столе pgAdmin4 нажмите Add New Server.
  2. На вкладке General укажите имя подключения, например local или bob-connection.
  3. Перейдите на вкладку Connection и укажите параметры:
    • Host name/address: 127.0.0.1 или IP сервера
    • Port: 5432 (по умолчанию)
    • Maintenance database: postgres
    • Username: postgres или другой пользователь
    • Password: пароль пользователя
  4. Нажмите Save.

Если подключение прошло успешно, вы увидите объект сервера в дереве слева с пометкой Active.

Совет: для локального сервера используйте 127.0.0.1 вместо имени хоста, чтобы избежать проблем с DNS.

Базовые операции в pgAdmin4

Ниже приведены шаги по созданию нового пользователя и базы данных через интерфейс pgAdmin4.

Создание пользователя (роли):

  1. В дереве базы данных щёлкните правой кнопкой по серверу или по пункту Login/Group Roles и выберите Create -> Login/Group Role.
  2. На вкладке General укажите имя роли, например bob.
  3. На вкладке Definition укажите пароль.
  4. На вкладке Privileges отметьте требуемые права (CREATEDB, CREATEROLE и т.д.)
  5. Нажмите Save.

Создание базы данных:

  1. Правый клик по пункту Databases -> Create -> Database.
  2. На вкладке General укажите имя базы bobdb и выберите владельца (Owner) bob.
  3. Нажмите Save.

Проверка подключения новым пользователем:

  1. Добавьте новое подключение в pgAdmin4 с пользователем bob и хостом 127.0.0.1.
  2. Укажите в поле Maintenance database или Database имя bobdb, чтобы сразу подключаться к ней.
  3. Сохраните и проверьте статус Active.

Примеры команд для администрирования вне pgAdmin4

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

  • Создать пользователя:
sudo -u postgres psql -c "CREATE ROLE bob WITH LOGIN PASSWORD 'bobpassword';"
  • Создать базу, назначив владельца:
sudo -u postgres psql -c "CREATE DATABASE bobdb OWNER bob;"
  • Назначить привилегии:
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE bobdb TO bob;"

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

  1. Веб-интерфейс pgAdmin4 доступен по URL http:///pgadmin4 и отображает страницу входа.
  2. Успешный вход под админ-аккаунтом, созданным setup-web.sh.
  3. Успешное подключение к локальной базе PostgreSQL под пользователем postgres.
  4. Создание роли и базы данных через pgAdmin4 и подключение к базе пользователем bob.
  5. Apache и PostgreSQL запускаются и включены на старте системы.

Если хотя бы одно из условий не выполнено — установка считается неполной.

Безопасность и рекомендации для продакшена

Рекомендации для безопасной и стабильной эксплуатации:

  • Обязательно включите HTTPS. Установите сертификат от Let’s Encrypt или другого CA и настройте редирект с HTTP на HTTPS.
  • Ограничьте доступ к URL /pgadmin4 через firewall или обратный прокси (nginx) только с доверенных IP или через VPN.
  • Создайте отдельного административного пользователя для pgAdmin4 и не используйте системный postgres для повседневной работы.
  • Регулярно обновляйте пакеты (pgAdmin4, PostgreSQL, Apache) и следите за CVE.
  • Используйте scram-sha-256 для хеширования паролей в PostgreSQL.
  • Храните пароли в менеджере секретов и не передавайте их по незащищённым каналам.
  • Настройте резервное копирование баз данных (pg_dump, pg_basebackup) и проверьте восстановление.

Пример настройки HTTPS для Apache (общая схема, настройте по вашему окружению):

  • Установите certbot и получите сертификат:
sudo dnf install certbot python3-certbot-apache -y
sudo certbot --apache -d your.domain.tld
  • Убедитесь, что в конфигурации Apache включён редирект на HTTPS и что сертификаты обновляются автоматически.

План отката и инцидентный runbook

Если что-то пошло не так при развёртывании — используйте следующий упрощённый план отката:

  1. Отключите доступ из внешней сети в firewall: sudo firewall-cmd –permanent –remove-service=http; –remove-service=https; sudo firewall-cmd –reload
  2. Остановите Apache: sudo systemctl stop httpd
  3. Откатите изменения в /etc/httpd/conf.d/pgadmin4.conf на резервную копию или удалите файл конфигурации pgAdmin4.
  4. Если вы вносили изменения в postgresql.conf или pg_hba.conf — восстановите прежние версии из резервной копии и перезапустите PostgreSQL:
sudo systemctl restart postgresql
  1. Восстановите ранее рабочую конфигурацию и уведомите заинтересованных сторон о восстановлении сервиса.

Инцидентный runbook — кратко:

  • Сбор информации: логи httpd и PostgreSQL, status systemd.
  • Определение масштаба: влияет ли проблема на всех пользователей или на отдельные подключения.
  • Минимизация ущерба: отключение внешнего доступа, переключение на резервную ноду при наличии HA.
  • Откат и восстановление из резервной копии.

Рольные контрольные списки

Контрольный список для DBA:

  • Проверить настройки pg_hba.conf и password_encryption.
  • Настроить бэкапы и тестировать восстановление.
  • Назначить роли и привилегии по принципу наименьших прав.

Контрольный список для системного администратора:

  • Настроить firewall и SELinux разрешения для Apache.
  • Обновить систему и обеспечить мониторинг служб.
  • Настроить HTTPS и автоматическое обновление сертификатов.

Контрольный список для DevOps:

  • Автоматизировать развёртывание конфигурации (Ansible, Terraform).
  • Рассмотреть контейнеризацию pgAdmin и оркестрацию для тестовых окружений.
  • Настроить логи и оповещения.

Контрольный список для разработчика:

  • Проверить доступы к тестовой базе bobdb.
  • Использовать отдельные учётные записи для разработки и тестирования.

Диагностика распространённых ошибок

Ошибка: «Не удаётся подключиться к серверу»

  • Проверьте, запущен ли PostgreSQL: sudo systemctl status postgresql
  • Проверьте настройки pg_hba.conf и не блокирует ли firewall порт 5432.

Ошибка: «403 Forbidden» на странице /pgadmin4

  • Проверьте права на каталоги и конфигурацию Apache.
  • Если SELinux в режиме Enforcing, примените setsebool httpd_can_network_connect on.

Ошибка HTTP 500 при входе

  • Посмотрите логи Python/pgAdmin в /var/log/httpd/ или в логах приложения.
  • Проверьте, корректно ли создан sqlite-файл конфигурации pgAdmin (если используется).

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

  • pgAdmin4 поддерживает управление PostgreSQL 9.6 и выше.
  • При миграции между версиями PostgreSQL проверяйте совместимость SQL и расширений.
  • Если используете реплики или кластерные решения (Patroni, repmgr), убедитесь, что pgAdmin подключается к правильному узлу.

Мини-методология развёртывания на продакшен

  1. Подготовьте тестовую среду, идентичную продакшену.
  2. Автоматизируйте установку и конфигурацию через Ansible/Playbook.
  3. Проведите нагрузочное тестирование и тесты на отказ.
  4. Настройте мониторинг и логирование (Prometheus, Grafana, ELK).
  5. Пилотное включение для небольшой группы пользователей.
  6. Пошаговое расширение доступа и финальное ревью безопасности.

Примеры тестов и критериев приёмки

  • Тест: вход в pgAdmin4 под админом -> ожидаемый результат: успешный вход и доступ к интерфейсу.
  • Тест: создание роли bob -> ожидаемый результат: роль видна в Login/Group Roles.
  • Тест: создание базы bobdb и подключение под bob -> ожидаемый результат: успешное подключение и возможность выполнять SQL-запросы.

Безопасность данных и соответствие

pgAdmin4 — это инструмент управления, а не место для хранения чувствительных паролей. Рекомендации по защите данных:

  • Храните пароли в системах секретов (Vault, AWS Secrets Manager).
  • Ограничьте доступ к интерфейсу pgAdmin4 по сети и через аутентификацию.
  • Для обработки персональных данных (GDPR) настройте контроль доступа и аудит изменений в базе.

Важно: если вы храните или обрабатываете персональные данные, согласуйте политику доступа и процедуру удаления данных с вашей юридической службой.

Решение: когда не стоит использовать pgAdmin4

  • Если вы нуждаетесь в мелкозернистом аудите и автоматизации на уровне API для большого количества операций — рассмотрите инструменты автоматизации или написание собственных скриптов.
  • Для высоконагруженных сценариев с большим числом соединений GUI-инструмент может быть узким местом.

Визуальный выбор режима установки (диаграмма)

flowchart TD
  A[Нужен GUI для DBA] --> B{Доступность сервера}
  B -->|Локально на рабочей станции| C[Установить настольный pgAdmin]
  B -->|Общий доступ в сети| D[Установить серверный pgAdmin с Apache]
  B -->|Изолированная среда/CI| E[Запустить в контейнере Docker]
  D --> F{Нужен HTTPS}
  F -->|Да| G[Настроить Let's Encrypt и proxy]
  F -->|Нет| H[Только HTTP - не рекомендовано]

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

Как сменить пароль администратора pgAdmin4?

Откройте веб-интерфейс под админом, перейдите в профиль пользователя и измените пароль. При необходимости можно обновить запись в конфигурации сервера pgAdmin.

Можно ли запустить pgAdmin4 за обратным прокси nginx?

Да. Многие используют nginx перед Apache или вместо него. В этом случае настройте проксирование и SSL в nginx.

Поддерживает ли pgAdmin4 подключение через SSH туннель?

Да. При создании подключения укажите параметр SSH Tunnel и настройки SSH-хоста и ключа.

Как защитить pgAdmin4 от внешнего доступа?

  • Ограничьте доступ через firewall по IP.
  • Разместите интерфейс за VPN или в DMZ с аутентификацией.
  • Используйте двухфакторную аутентификацию на уровне прокси (если возможно).

Примеры команд для резервного копирования

  • Логический дамп базы:
pg_dump -U bob -h 127.0.0.1 -F c -b -v -f /var/backups/bobdb.dump bobdb
  • Восстановление из дампа:
pg_restore -U postgres -d bobdb -v /var/backups/bobdb.dump

Шаблон контрольного списка перед вводом в продакшен

  • Система обновлена и патчи применены
  • PostgreSQL настроен с scram-sha-256
  • Установлен и протестирован бэкап
  • HTTPS настроен для Apache
  • SELinux и firewall настроены корректно
  • Мониторинг и логирование включены
  • План отката согласован и протестирован

Заключение

Вы успешно узнали, как установить и настроить pgAdmin4 на Rocky Linux 8, подключить его к локальной установке PostgreSQL, создать пользователя и базу данных, а также обеспечить базовую безопасность и мониторинг. Для продакшена обязательно включите HTTPS, ограничьте доступ и настройте резервное копирование.

Краткие рекомендации на будущее:

  • Автоматизируйте развёртывание через Ansible или другой инструмент.
  • Внедрите мониторинг и оповещения.
  • Регулярно обновляйте компоненты и проверяйте бэкапы.

Спасибо за внимание!


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

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

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

Как объединить видео на iPhone — iMovie и альтернативы
Видео

Как объединить видео на iPhone — iMovie и альтернативы

Перевёрнутый экран в Windows 10 — как исправить
Windows

Перевёрнутый экран в Windows 10 — как исправить

Ложное срабатывание Behavior:Win32/Hive.ZY — что делать
Кибербезопасность

Ложное срабатывание Behavior:Win32/Hive.ZY — что делать

Отключить повторную установку iOS‑приложений
iOS

Отключить повторную установку iOS‑приложений

Перенос чатов: WhatsApp → Telegram
Руководство

Перенос чатов: WhatsApp → Telegram

Что делать, если Adobe Flash не работает на Mac
Поддержка Mac

Что делать, если Adobe Flash не работает на Mac