Мы подготовили подробную инструкцию по инсталляции PostgreSQL на Ubuntu 22.04, включая три популярных способа: через стандартные репозитории системы, официальный источник разработчиков и контейнеризацию с использованием Docker. В процессе вы научитесь подключать современные методы аутентификации, создавать пользователей и базы данных, активировать расширения и настраивать доступ из сети.
Почему стоит выбрать PostgreSQL?
PostgreSQL — это универсальная и надёжная СУБД, подходящая для любого проекта: от веб-приложений с высокой нагрузкой до аналитических и геоинформационных решений. Она обеспечивает надёжность транзакций даже при интенсивной работе, поддерживает сложные типы данных (например, JSONB и геообъекты через PostGIS), гибко настраивается под конкретные задачи и, что важно, полностью бесплатна и с открытым исходным кодом. Всё это делает её востребованной среди разработчиков, DevOps-специалистов и системных администраторов.
В этой статье мы рассмотрим все шаги установки PostgreSQL на Ubuntu 22.04 (включая VPS), дадим рекомендации по настройке производительности и укажем на распространённые ошибки, которых стоит избегать.
Также вы узнаете:
- Как настроить безопасную аутентификацию через scram-sha-256;
- Как разрешить удалённый доступ, не жертвуя безопасностью;
- Как подключать расширения и модули;
- Как оптимизировать индексы и работу с кешем.
Способы установки PostgreSQL на Ubuntu 22.04
На Ubuntu PostgreSQL можно установить тремя способами — выбор зависит от ваших целей. Ниже — краткий обзор каждого подхода.
1. Установка из стандартного репозитория Ubuntu (простой способ)
Подходит, если не требуется самая последняя версия:
sudo apt update && sudo apt upgrade -y sudo apt install postgresql postgresql-contrib -y
Что делают эти команды:
- sudo apt update — обновляет информацию о доступных пакетах;
- sudo apt upgrade -y — устанавливает последние версии уже установленных пакетов;
- postgresql — основной сервер СУБД;
- postgresql-contrib — дополнительные модули, такие как pgcrypto и uuid-ossp.
Плюсы: быстро, интеграция с systemd. Минус: версия PostgreSQL может быть не самой новой (например, 14-я на Ubuntu 22.04).
2. Установка из официального репозитория PostgreSQL (новейшие версии)
Если вам необходима актуальная версия, например PostgreSQL 16 или 17:
Шаг 1. Добавляем репозиторий:
sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' wget -qO- https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo tee /etc/apt/trusted.gpg.d/pgdg.asc sudo apt update
Шаг 2. Установка PostgreSQL:
sudo apt install postgresql-16 postgresql-client-16 postgresql-contrib -y
Дополнительно:
sudo apt install postgresql-16-postgis-3
3. Установка через Docker (изолированное окружение)
docker run --name postgres-16 \ -e POSTGRES_USER=admin \ -e POSTGRES_PASSWORD=Secret123! \ -e POSTGRES_DB=mydb \ -p 5432:5432 \ -v /path/to/data:/var/lib/postgresql/data \ -d postgres:16
Пояснение параметров:
- --name — имя контейнера;
- -e — переменные окружения;
- -p — проброс портов;
- -v — монтирование тома;
- -d — фоновый режим.
Плюсы: контейнер изолирован от основной системы. Минусы: требуется настраивать бэкапы отдельно.
Проверка статуса PostgreSQL
После установки проверьте, запущен ли сервер:
sudo systemctl status postgresql
Если видите Active: active (running) — всё работает. Если нет — проверьте журналы:
sudo journalctl -u postgresql@16-main -xe
Первичная настройка PostgreSQL: пользователи, безопасность, производительность
После установки важно настроить сервер под конкретные задачи. Неправильная конфигурация может привести к снижению производительности или проблемам с безопасностью.
Создание пользователя и базы данных
Сначала подключитесь под системным пользователем postgres:
sudo -u postgres psql
Внутри psql выполните:
CREATE USER myuser WITH PASSWORD 'СложныйПароль!123' VALID UNTIL '2026-01-01'; CREATE DATABASE mydb OWNER myuser ENCODING 'UTF8' LC_COLLATE 'ru_RU.UTF-8'; \connect mydb
Важно: с PostgreSQL 16+ по умолчанию используется scram-sha-256 — безопаснее, чем MD5. Пароль должен быть сложным: цифры, буквы, символы.
Настройка pg_hba.conf (контроль доступа)
Файл pg_hba.conf определяет, кто и как может подключаться к СУБД. Пример пути к файлу:
/etc/postgresql/16/main/pg_hba.conf
Откройте его:
sudo nano /etc/postgresql/16/main/pg_hba.conf
Добавьте правила доступа:
# TYPE DATABASE USER ADDRESS METHOD local all postgres peer hostssl mydb myuser 192.168.1.0/24 scram-sha-256
Расшифровка:
- local — соединение через сокет;
- peer — аутентификация через системного пользователя;
- hostssl — доступ только по SSL;
- 192.168.1.0/24 — доверенный IP-диапазон;
- scram-sha-256 — безопасная схема аутентификации.
Заключение
PostgreSQL — мощная и гибкая СУБД, подходящая для широкого спектра задач. Ubuntu 22.04 предоставляет удобные способы установки, но важно не останавливаться на базовой настройке. Настройте аутентификацию, доступ, расширения и производительность — это залог стабильной и безопасной работы вашей базы данных.