hostingfaq.ru — отвечаем на вопросы о хостинге простым языком 45 провайдеров · 146 ответов · данные от 14.10.2026
hostingfaqвопрос — ответ Обновлено 14.10.2026

PostgreSQL: установка на Ubuntu 24.04 и первая настройка — инструкция для новичка

Обновлено 8 октября 2026 Чтение 9 мин Раздел: Блог о хостинге и серверах: инструкции, разборы и настройки

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

PostgreSQL: установка на 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 через порт 5432 с ролью и базой данных
Как клиент попадает в базу: порт 5432, настройки доступа и роль

PostgreSQL установка на Ubuntu 24.04 по шагам

PostgreSQL установка на Ubuntu 24.04 занимает около 10 минут и сводится к одной команде apt. В репозитории этой системы лежит PostgreSQL 16, поэтому подключать сторонние источники не нужно. В Ubuntu 22.04 из репозитория ставится версия 14: команды те же, а пути к конфигам содержат другой номер версии.

Для небольшого проекта хватит VPS (виртуального выделенного сервера) с 1 ГБ оперативной памяти и 1 ГБ свободного диска. Подключитесь к серверу по SSH (защищённому удалённому доступу) под пользователем с правом sudo. Если с консолью вы пока на «вы» не работаете, сначала прочитайте основы работы с Linux на сервере.

Выполните по порядку семь шагов:

  1. Обновите индекс пакетов: sudo apt update. Система получит свежий список версий из репозиториев.
  2. Установите сервер и расширения: sudo apt install postgresql postgresql-contrib. Когда apt спросит подтверждение, нажмите Y. Пакет postgresql-contrib добавляет дополнительные модули.
  3. Проверьте службу: sudo systemctl status postgresql. В выводе должна быть строка active. Чтобы выйти из просмотра, нажмите q.
  4. Включите автозапуск при перезагрузке сервера: sudo systemctl enable postgresql.
  5. Войдите в консоль базы данных: sudo -u postgres psql. Здесь postgres — системный суперпользователь БД, а psql — клиент командной строки.
  6. Проверьте версию: SELECT version();. В ответе будет строка с PostgreSQL 16. Точка с запятой в конце обязательна.
  7. Выйдите из консоли: \q.

После установки сервер слушает порт 5432 и по умолчанию принимает подключения только с localhost. Снаружи он недоступен, и для первых шагов это безопасная настройка. Роль и базу данных вы создадите дальше.

Терминал Ubuntu с командой apt install postgresql и статусом службы active running
Установка PostgreSQL в терминале Ubuntu: служба postgresql в состоянии active (running) (иллюстрация интерфейса)

Как создать роль и базу данных

Работать из приложения под суперпользователем 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 и возвращает в оболочку
Окно psql со списком баз данных и базой shop_db
Сеанс psql: список баз данных, среди них shop_db (иллюстрация интерфейса)

Удалённый доступ, конфигурация и резервная копия

По умолчанию 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 и повторите установку.

Важно. Не открывайте порт 5432 всем адресам (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?
Выполните sudo apt update, затем sudo apt install postgresql postgresql-contrib. После этого проверьте службу командой sudo systemctl status postgresql. В Ubuntu 24.04 ставится PostgreSQL 16.
Какой порт использует PostgreSQL?
По умолчанию порт 5432. Изменить его можно параметром port в файле postgresql.conf, после чего нужно перезапустить службу.
Как зайти в PostgreSQL после установки?
Выполните sudo -u postgres psql. Вы попадёте в консоль под суперпользователем postgres. Для выхода введите \q.
Как создать пользователя и базу данных в PostgreSQL?
В psql выполните CREATE ROLE shop_user WITH LOGIN PASSWORD 'ваш_пароль'; и CREATE DATABASE shop_db OWNER shop_user;. В PostgreSQL пользователи называются ролями.
Где находится конфигурационный файл PostgreSQL?
В Ubuntu основные файлы лежат в /etc/postgresql/16/main/. Это postgresql.conf с общими параметрами и pg_hba.conf с правилами доступа. Цифра в пути соответствует версии.
Как разрешить удалённое подключение к PostgreSQL?
Задайте listen_addresses в postgresql.conf и добавьте строку для нужного IP в pg_hba.conf. Затем перезапустите службу и откройте порт 5432 в файрволе только для доверенных адресов.
Сколько памяти нужно для PostgreSQL?
Для небольшого проекта обычно хватает 1 ГБ оперативной памяти. Точная цифра зависит от числа подключений и размера данных. Для нагрузки выше средней берут больше.
Как сделать резервную копию базы PostgreSQL?
Используйте pg_dump, например pg_dump -Fc -h 127.0.0.1 -U shop_user shop_db > shop_db.dump. Восстановить копию можно командой pg_restore в заранее созданную базу.
Что делать при ошибке «Peer authentication failed»?
Ошибка возникает, когда имя системного пользователя не совпадает с именем роли. Войдите через sudo -u postgres psql или подключитесь по сети с ключом -h 127.0.0.1 и паролем.

Проверьте себя

  • Служба postgresql запущена и показывает active (running).
  • Версия проверена командой SELECT version();.
  • Создана отдельная роль для приложения, а не используется postgres.
  • Порт 5432 открыт только для нужных IP-адресов или закрыт совсем.
  • Пароль роли надёжный и не хранится в открытом виде в репозитории кода.
  • Резервная копия через pg_dump создана и тестовое восстановление прошло.

На сайте есть партнёрские ссылки: если вы оформите заказ по ним, мы получим вознаграждение от провайдера. Это не влияет на цену для вас и на место в рейтинге.