Установка PostgreSQL и pgAdmin: Пошаговая инструкция для Linux, Windows, macOS | AdminWiki

PostgreSQL и pgAdmin: Полное руководство по установке и настройке

17 декабря 2025 9 мин. чтения #devops #pgadmin #postgresql #базы данных #настройка #установка

Представь, что тебе нужно быстро развернуть мощную реляционную СУБД с удобным графическим интерфейсом для администрирования. PostgreSQL и pgAdmin — идеальный дуэт для этой задачи. В этом руководстве мы разберем установку и настройку обеих компонентов на разных операционных системах, как настоящие DevOps-инженеры.

Что такое PostgreSQL и pgAdmin?

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

Важно: pgAdmin 4 — это веб-приложение. После установки он запускает локальный веб-сервер, к которому ты подключаешься через браузер.

Установка PostgreSQL и pgAdmin на разных ОС

Давай разберем процесс установки для каждой популярной операционной системы. Выбери свой вариант.

1. Установка на Ubuntu/Debian

Для систем на основе Debian используй официальные репозитории PostgreSQL.

Шаг 1: Добавление репозитория PostgreSQL

bash
# Импортируем ключ репозитория
sudo apt install wget ca-certificates
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

# Добавляем репозиторий (для PostgreSQL 16)
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

# Обновляем список пакетов
sudo apt update

Шаг 2: Установка PostgreSQL

bash
# Устанавливаем PostgreSQL и дополнительные утилиты
sudo apt install postgresql-16 postgresql-contrib-16

Шаг 3: Установка pgAdmin

bash
# Добавляем репозиторий pgAdmin
sudo curl -fsSL https://www.pgadmin.org/static/packages_pgadmin_org.pub | \
  sudo gpg --dearmor -o /usr/share/keyrings/packages-pgadmin-org.gpg

# Добавляем источник для pgAdmin
sudo sh -c 'echo \
  "deb [signed-by=/usr/share/keyrings/packages-pgadmin-org.gpg] https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" \
  > /etc/apt/sources.list.d/pgadmin4.list'

# Обновляем и устанавливаем
sudo apt update
sudo apt install pgadmin4-desktop
Внимание: Если нужна веб-версия pgAdmin, установи pgadmin4-web вместо pgadmin4-desktop и настрой сервис через sudo /usr/pgadmin4/bin/setup-web.sh

2. Установка на CentOS/RHEL/Fedora

Для RHEL-подобных систем процесс немного отличается.

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

# Устанавливаем PostgreSQL 16
sudo yum install -y postgresql16-server postgresql16-contrib

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

# Запускаем и добавляем в автозагрузку
sudo systemctl enable postgresql-16
sudo systemctl start postgresql-16

3. Установка на Windows

На Windows проще всего использовать установщики:

  • Скачай установщик PostgreSQL с официального сайта
  • Запусти установщик — он предложит установить и PostgreSQL, и pgAdmin вместе
  • Во время установки запомни пароль для пользователя postgres
  • Выбери порт (по умолчанию 5432) и локаль

4. Установка на macOS

bash
# Используем Homebrew
brew install postgresql@16

# Запускаем службу PostgreSQL
brew services start postgresql@16

# Устанавливаем pgAdmin (Desktop версия)
brew install --cask pgadmin4

Настройка PostgreSQL после установки

После установки PostgreSQL требуется базовая настройка. Давай разберем ключевые моменты.

Шаг 1: Настройка аутентификации

По умолчанию PostgreSQL использует peer-аутентификацию для локальных подключений. Для подключения через pgAdmin нужно настроить парольную аутентификацию.

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

# Запускаем psql
psql

# Меняем пароль для пользователя postgres
ALTER USER postgres WITH PASSWORD 'ваш_надежный_пароль';

# Выходим
\q
exit

Шаг 2: Редактирование pg_hba.conf

Файл pg_hba.conf управляет аутентификацией. Находится обычно в /etc/postgresql/16/main/ или /var/lib/pgsql/16/data/.

config
# Для локальных подключений используем md5 (парольную аутентификацию)
# Вместо:
# local   all             all                                     peer
# Измени на:
local   all             all                                     md5

# Для подключений с localhost тоже меняем на md5
# Вместо:
# host    all             all             127.0.0.1/32            ident
# Измени на:
host    all             all             127.0.0.1/32            md5

# Если нужно разрешить подключения из сети (осторожно!):
host    all             all             192.168.1.0/24          md5

Шаг 3: Редактирование postgresql.conf

Чтобы PostgreSQL слушал не только localhost, измени настройки подключения:

config
# Находим и раскомментируем/изменяем строки:
listen_addresses = '*'          # слушать все интерфейсы
port = 5432                     # порт по умолчанию
max_connections = 100           # максимальное количество подключений
Безопасность: Открывать PostgreSQL для всех интерфейсов (listen_addresses = '*') в production-среде без firewall опасно. Используй это только для разработки или настройте firewall правила.

Шаг 4: Перезапуск PostgreSQL

bash
# Для systemd систем
sudo systemctl restart postgresql
# или
sudo systemctl restart postgresql-16

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

Настройка pgAdmin и подключение к PostgreSQL

Теперь, когда PostgreSQL настроен, давай подключим к нему pgAdmin.

Шаг 1: Запуск pgAdmin

  • Linux (Desktop): Найди pgAdmin в меню приложений или запусти через терминал: pgadmin4
  • Linux (Web): Открой браузер и перейди по http://localhost/pgadmin4
  • Windows/macOS: Запусти pgAdmin из меню "Пуск" или Launchpad

Шаг 2: Первоначальная настройка pgAdmin

При первом запуске тебя попросят:

  1. Установить мастер-пароль для pgAdmin (защищает доступ к настройкам pgAdmin)
  2. Войти с этим мастер-паролем
  3. Настроить email для уведомлений (опционально)

Шаг 3: Добавление сервера PostgreSQL

Вот как добавить подключение к твоему PostgreSQL серверу:

  1. Правой кнопкой на "Servers" → "Register" → "Server..."
  2. На вкладке "General" укажи имя (например, "Local PostgreSQL")
  3. На вкладке "Connection" заполни:
    • Host name/address: localhost (или IP сервера)
    • Port: 5432
    • Maintenance database: postgres
    • Username: postgres
    • Password: пароль, который ты установил ранее
  4. Нажми "Save"
Совет: Если подключаешься к удаленному серверу, убедись что firewall разрешает подключения на порт 5432, и что в pg_hba.conf добавлено правило для твоего IP.

Сравнение методов установки

Метод/ОС Сложность Гибкость Рекомендация
Ubuntu/Debian (пакеты) Средняя Высокая Для production и разработки
RHEL/CentOS (пакеты) Средняя Высокая Для enterprise-сред
Windows (установщик) Низкая Средняя Для разработки на Windows
macOS (Homebrew) Низкая Высокая Для разработчиков на macOS
Docker Низкая Очень высокая Для изолированных сред и CI/CD

Бонус: Установка через Docker

Для быстрого развертывания и изоляции используй Docker. Вот docker-compose конфиг:

yaml
version: '3.8'

services:
  postgres:
    image: postgres:16-alpine
    container_name: postgres_db
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: ваш_пароль
      POSTGRES_DB: mydatabase
    ports:
      - "5432:5432"
    volumes:
      - postgres_data:/var/lib/postgresql/data
    networks:
      - db_network

  pgadmin:
    image: dpage/pgadmin4:latest
    container_name: pgadmin
    environment:
      PGADMIN_DEFAULT_EMAIL: admin@example.com
      PGADMIN_DEFAULT_PASSWORD: admin_password
    ports:
      - "5050:80"
    volumes:
      - pgadmin_data:/var/lib/pgadmin
    networks:
      - db_network
    depends_on:
      - postgres

volumes:
  postgres_data:
  pgadmin_data:

networks:
  db_network:
    driver: bridge
bash
# Запуск
docker-compose up -d

# PostgreSQL будет доступен на localhost:5432
# pgAdmin будет доступен на http://localhost:5050

Частые проблемы и решения

Ошибка: "Connection refused"

Решение: Проверь что PostgreSQL запущен (sudo systemctl status postgresql) и слушает правильный интерфейс (проверь listen_addresses в postgresql.conf).

Ошибка: "password authentication failed"

Решение: Убедись что в pg_hba.conf для твоего подключения указан md5 а не peer или ident. Не забудь перезапустить PostgreSQL.

pgAdmin не запускается или выдает ошибку

Решение: Попробуй удалить конфигурацию pgAdmin (~/.pgadmin/ на Linux, %APPDATA%\pgAdmin на Windows) и настрой заново. Или проверь логи: ~/.pgadmin/pgadmin4.log.

FAQ: Ответы на частые вопросы

Какой порт использует PostgreSQL по умолчанию?

PostgreSQL использует порт 5432 по умолчанию. Если порт занят, можно изменить его в файле postgresql.conf.

Можно ли установить pgAdmin без PostgreSQL?

Да, pgAdmin можно установить отдельно и подключить к удаленному серверу PostgreSQL. Это полезно когда нужно администрировать несколько серверов из одного интерфейса.

Как сбросить пароль postgres, если я его забыл?

Останови PostgreSQL, запусти в single-user mode и выполни ALTER USER postgres WITH PASSWORD 'новый_пароль';. Или отредактируй pg_hba.conf чтобы разрешить подключение без пароля, подключись и поменяй пароль.

Какая версия PostgreSQL лучше для production?

Используй последнюю стабильную мажорную версию (сейчас это 16.x). Старайся избегать первых минорных релизов (например, 16.0), дождись 16.1 или 16.2 где исправлены критические баги.

Заключение

Мы подробно разобрали процесс установки и настройки PostgreSQL и pgAdmin на разных операционных системах. Ключевые моменты которые нужно запомнить:

  • Всегда настраивай надежные пароли для пользователя postgres и pgAdmin
  • Правильно конфигурируй pg_hba.conf для нужного типа аутентификации
  • Для production-сред ограничивай доступ через firewall и настрой SSL
  • Docker отлично подходит для изолированных сред разработки и тестирования

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

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