PostgreSQL: установка на Ubuntu 24.04 и первая настройка — инструкция для новичка
PostgreSQL установка на VPS занимает около 10 минут, если знать порядок действий. Материал из блога HostingFAQ проведёт вас от команды apt install до первой базы данных и резервной копии. Вы создадите роль, проверите порт 5432 и настроите доступ, а затем разберёте типичные ошибки. Подойдёт для Ubuntu 24.04 и похожих систем.

Коротко
- Установка PostgreSQL на Ubuntu 24.04 занимает около 10 минут и сводится к одной команде apt.
- В репозитории Ubuntu 24.04 по умолчанию идёт PostgreSQL 16, в Ubuntu 22.04 — версия 14.
- Сервер слушает порт 5432, по умолчанию только на localhost.
- Для небольшого проекта обычно хватает VPS с 1 ГБ оперативной памяти и 1 ГБ свободного диска.
- Каждая основная версия PostgreSQL получает обновления около 5 лет.
- Резервную копию делает команда pg_dump, а восстанавливает pg_restore.
Что такое PostgreSQL и зачем он нужен на сервере
PostgreSQL — свободная реляционная СУБД (система управления базами данных). Она хранит данные в таблицах, связывает их между собой и отвечает на запросы на языке SQL. Сайт, магазин или приложение обращаются к ней, когда нужно сохранить заказ, найти товар или проверить пароль пользователя.
PostgreSQL установка на VPS нужна, если вам требуется своя база под интернет-магазин, CMS, API или внутренний сервис. Вы сами выбираете версию, настройки и расписание резервных копий. Основная версия получает обновления около 5 лет, поэтому на выбранную ветку можно рассчитывать надолго. Если выбираете сервер, загляните в ответы на частые вопросы о VPS.
Перед началом проверьте, что у вас есть всё необходимое:
- система Ubuntu 24.04, в её репозитории лежит PostgreSQL 16;
- доступ под root или пользователем с правами
sudo; - минимум 1 ГБ оперативной памяти;
- минимум 1 ГБ свободного места на диске.
Для небольшого проекта этого обычно хватает, но при росте нагрузки ресурсов понадобится больше. Сама установка займёт около 10 минут.
Как устроен PostgreSQL: служба, роли и порт 5432
PostgreSQL работает как фоновая серверная служба postgresql. Она стартует вместе с системой, а её состояние показывает команда sudo systemctl status postgresql. При установке появляется системный пользователь postgres. Он же суперпользователь базы данных (БД): войти под ним можно командой sudo -u postgres psql.
В PostgreSQL вместо «пользователей» используются роли. Роль может входить на сервер, владеть базами и получать права на таблицы. Для проекта создайте отдельную роль, например shop_user, и не работайте под postgres в приложении.
Сервер принимает подключения на порту 5432. По умолчанию параметр listen_addresses равен 'localhost', поэтому снаружи сервера база недоступна, пока вы сами это не измените.
Настройки лежат в двух файлах. Для Ubuntu 24.04 с PostgreSQL 16 это:
/etc/postgresql/16/main/postgresql.conf— основные параметры: порт,listen_addresses,max_connections = 100(максимум одновременных подключений) иshared_buffers = 128 МБ(память под кэш данных);/etc/postgresql/16/main/pg_hba.conf— правила доступа (HBA, host-based authentication): какая роль, с какого адреса и к какой базе подключается и как подтверждает себя.
После правки любого из файлов перезапустите службу командой sudo systemctl restart postgresql.

PostgreSQL установка на Ubuntu 24.04 по шагам
PostgreSQL установка на Ubuntu 24.04 занимает около 10 минут и сводится к одной команде apt. В репозитории этой системы лежит PostgreSQL 16, поэтому подключать сторонние источники не нужно. В Ubuntu 22.04 из репозитория ставится версия 14: команды те же, а пути к конфигам содержат другой номер версии.
Для небольшого проекта хватит VPS (виртуального выделенного сервера) с 1 ГБ оперативной памяти и 1 ГБ свободного диска. Подключитесь к серверу по SSH (защищённому удалённому доступу) под пользователем с правом sudo. Если с консолью вы пока на «вы» не работаете, сначала прочитайте основы работы с Linux на сервере.
Выполните по порядку семь шагов:
- Обновите индекс пакетов:
sudo apt update. Система получит свежий список версий из репозиториев. - Установите сервер и расширения:
sudo apt install postgresql postgresql-contrib. Когдаaptспросит подтверждение, нажмитеY. Пакетpostgresql-contribдобавляет дополнительные модули. - Проверьте службу:
sudo systemctl status postgresql. В выводе должна быть строкаactive. Чтобы выйти из просмотра, нажмитеq. - Включите автозапуск при перезагрузке сервера:
sudo systemctl enable postgresql. - Войдите в консоль базы данных:
sudo -u postgres psql. Здесьpostgres— системный суперпользователь БД, аpsql— клиент командной строки. - Проверьте версию:
SELECT version();. В ответе будет строка сPostgreSQL 16. Точка с запятой в конце обязательна. - Выйдите из консоли:
\q.
После установки сервер слушает порт 5432 и по умолчанию принимает подключения только с localhost. Снаружи он недоступен, и для первых шагов это безопасная настройка. Роль и базу данных вы создадите дальше.

Как создать роль и базу данных
Работать из приложения под суперпользователем postgres небезопасно: одна ошибка в коде затронет весь сервер. Поэтому для каждого проекта заводят отдельную роль и отдельную базу. Роль — это учётная запись внутри PostgreSQL, в нашем примере она называется shop_user.
Войдите в консоль командой sudo -u postgres psql и выполните два запроса на языке SQL (Structured Query Language). Пароль придумайте свой, лучше от 16 символов:
CREATE ROLE shop_user WITH LOGIN PASSWORD 'ваш_пароль';
CREATE DATABASE shop_db OWNER shop_user;
Выйдите командой \q и проверьте подключение по сети через адрес 127.0.0.1: psql -h 127.0.0.1 -U shop_user -d shop_db. Сервер запросит пароль и покажет приглашение shop_db=>. Если оно появилось, роль и база работают.
Внутри psql (консольного клиента PostgreSQL) чаще всего нужны пять команд:
| Команда | Что делает |
|---|---|
\l |
Показывает список всех баз данных на сервере |
\du |
Выводит роли и их атрибуты, например LOGIN |
\c shop_db |
Переключается на базу shop_db |
\dt |
Перечисляет таблицы в текущей базе |
\q |
Закрывает psql и возвращает в оболочку |

Удалённый доступ, конфигурация и резервная копия
По умолчанию PostgreSQL слушает только localhost на порту 5432, поэтому снаружи к базе не подключиться. Для внешнего соединения нужны три настройки, и без любой из них клиент получит отказ. Файлы лежат в каталоге /etc/postgresql/16/main/.
Не открывайте базу всему интернету: боты перебирают пароли на порту 5432 круглосуточно. Разрешите доступ только с вашего IP-адреса (адреса компьютера в сети), например 203.0.113.10/32. Если адрес меняется, лучше подключаться через VPN или SSH-туннель.
Что изменить в настройках:
- В
postgresql.confзаменитеlisten_addresses = 'localhost'на IP сервера или на'*'. - В
pg_hba.conf, файле правил доступа клиентов, добавьте строкуhost shop_db shop_user 203.0.113.10/32 scram-sha-256. - В файрволе откройте порт только для вашего адреса:
sudo ufw allow from 203.0.113.10 to any port 5432. - Перезапустите службу:
sudo systemctl restart postgresql.
Резервную копию делает pg_dump. Формат -Fc сжимает данные и позволяет восстанавливать объекты выборочно: pg_dump -Fc -h 127.0.0.1 -U shop_user shop_db > shop_db.dump. Восстановите копию в новую пустую базу командой pg_restore -d shop_db_new shop_db.dump. Как хранить копии и проверять их, читайте в материале о резервном копировании.
Частые ошибки при установке PostgreSQL и как их исправить
Большинство сбоев после apt install повторяется у всех новичков. Вы можете встретить пять ошибок: Peer authentication failed, Connection refused, no pg_hba.conf entry, password authentication failed и Package not found. Каждая решается за 1–3 минуты.
Сначала прочитайте сообщение целиком: оно указывает на причину. Подробности покажет журнал: sudo journalctl -u postgresql.
Peer authentication failed
Причина: вы входите под системным пользователем, имя которого не совпадает с именем роли. Войдите как суперпользователь: sudo -u postgres psql. Для роли shop_user подключайтесь по сети: psql -h 127.0.0.1 -U shop_user shop_db.
Connection refused на порту 5432
Причина: служба остановлена или слушает другой адрес. Проверьте sudo systemctl status postgresql и при необходимости выполните sudo systemctl start postgresql. Затем откройте /etc/postgresql/16/main/postgresql.conf и проверьте listen_addresses: по умолчанию там ‘localhost’.
no pg_hba.conf entry
Причина: в /etc/postgresql/16/main/pg_hba.conf нет строки для вашего клиента, базы или роли. Добавьте строку с адресом клиента и методом scram-sha-256, затем примените её командой sudo systemctl reload postgresql.
password authentication failed
Причина: пароль неверный или не задан. Войдите через sudo -u postgres psql и смените его: ALTER ROLE shop_user WITH PASSWORD 'новый_пароль';
Package not found
Причина: в старой Ubuntu нужной версии нет в штатном репозитории, например в Ubuntu 22.04 ставится PostgreSQL 14. Подключите репозиторий PGDG (PostgreSQL Global Development Group), выполните sudo apt update и повторите установку.
0.0.0.0/0). Разрешайте доступ только IP-адресам, которым он нужен, и задавайте длинный пароль.Если ошибки нет в списке, начните с трёх проверок: статус службы, значение listen_addresses и строки в pg_hba.conf. Этого хватает для большинства случаев.
Способы установки PostgreSQL: что выбрать
Поставить PostgreSQL на VPS (виртуальный сервер) можно четырьмя способами. Они отличаются версией СУБД (системы управления базами данных), скоростью установки и тем, кто следит за обновлениями.
Новичку подойдёт пакет из репозитория операционной системы: одна команда sudo apt install postgresql, около 10 минут и никаких сторонних источников. В Ubuntu 24.04 вы получите PostgreSQL 16, в Ubuntu 22.04 — версию 14. Каждая основная версия получает исправления около 5 лет, так что для небольшого проекта этого хватает с запасом.
Если нужна более свежая или конкретная версия, берите репозиторий PGDG (PostgreSQL Global Development Group). Docker удобен, когда база живёт рядом с приложением в контейнере. Готовое приложение в панели хостинга запускается в пару кликов, но настройки обычно ограничены. Ответы на похожие вопросы собраны в разделе Посмотрите ответы на вопросы о VPS.
| Способ | Версия | Скорость установки | Обновления | Сложность |
|---|---|---|---|---|
| Пакет из репозитория Ubuntu | Одна версия на выпуск ОС (16 в Ubuntu 24.04) | Около 10 минут | Через apt upgrade |
Низкая |
| Репозиторий PGDG | Любая поддерживаемая | 15–20 минут, нужно подключить источник | Через apt |
Средняя |
| Docker | Любая из образов | Зависит от скорости загрузки образа | Вручную сменой образа | Средняя: тома и сеть |
| Приложение в панели | Задаёт хостинг | Несколько минут | Зависит от панели | Низкая |
Для кого PostgreSQL на своём сервере не подходит
Свой сервер с PostgreSQL требует регулярной работы: раз в несколько месяцев обновлять пакеты, следить за диском и проверять, что резервные копии действительно восстанавливаются. Основная версия получает обновления около 5 лет, поэтому через это время придётся переезжать на новую. Если времени на это нет, надёжнее взять управляемую базу, где обновления и бэкапы делает провайдер.
Второй случай — слабый сервер. Для небольшого проекта нужно минимум 1 ГБ RAM (Random Access Memory, оперативная память) и 1 ГБ свободного диска. По умолчанию shared_buffers равен 128 МБ, а max_connections — 100, и на VPS меньше 1 ГБ система начнёт упираться в память и подгружать данные с диска. Подходящий тариф поможет выбрать материал о выборе VPS.
Если вам нужен простой сайт на CMS (Content Management System, система управления сайтом), которая работает с MySQL, отдельный PostgreSQL не даст выигрыша: проще использовать MySQL из коробки.
Откажитесь от самостоятельной установки или выберите другой вариант, если подходит что-то из этого:
- нет времени на обновления и проверку резервных копий
pg_dump; - на сервере меньше 1 ГБ RAM;
- проект — обычный сайт на CMS с MySQL;
- вам неудобно работать в командной строке, например с
sudo -u postgres psql; - потеря данных для вас критична, а администратора нет.
Частые вопросы
Как выполнить установку PostgreSQL на Ubuntu?
Какой порт использует PostgreSQL?
Как зайти в PostgreSQL после установки?
Как создать пользователя и базу данных в PostgreSQL?
Где находится конфигурационный файл PostgreSQL?
Как разрешить удалённое подключение к PostgreSQL?
Сколько памяти нужно для PostgreSQL?
Как сделать резервную копию базы PostgreSQL?
Что делать при ошибке «Peer authentication failed»?
Проверьте себя
- Служба postgresql запущена и показывает active (running).
- Версия проверена командой SELECT version();.
- Создана отдельная роль для приложения, а не используется postgres.
- Порт 5432 открыт только для нужных IP-адресов или закрыт совсем.
- Пароль роли надёжный и не хранится в открытом виде в репозитории кода.
- Резервная копия через pg_dump создана и тестовое восстановление прошло.
На сайте есть партнёрские ссылки: если вы оформите заказ по ним, мы получим вознаграждение от провайдера. Это не влияет на цену для вас и на место в рейтинге.