Как поставить PostgreSQL в Ubuntu, Debian и AlmaLinux, создать базу и пользователя, открыть доступ с другого сервера, делать резервные копии и восстанавливать их.
Содержание
PostgreSQL есть в репозиториях всех наших систем. Ниже — установка, база для приложения, доступ снаружи и резервные копии.
Установка
Ubuntu и Debian — служба запустится сразу:
sudo apt install postgresqlВ Ubuntu 26.04 так ставится PostgreSQL 18, в Debian 13 — PostgreSQL 17.
AlmaLinux — после установки базу нужно создать и включить службу:
sudo dnf install postgresql-server
sudo postgresql-setup --initdb
sudo systemctl enable --now postgresqlВ AlmaLinux 10 это PostgreSQL 16. В AlmaLinux 9 по умолчанию ставится PostgreSQL 13 — для новых проектов возьмите версию новее: перед установкой выполните sudo dnf module enable postgresql:16.
База и пользователь
Администратор PostgreSQL — системный пользователь postgres. Войти в консоль базы:
sudo -u postgres psqlСоздайте пользователя и базу для приложения — команды прямо в консоли psql:
CREATE USER app WITH PASSWORD 'надёжный-пароль';
CREATE DATABASE app OWNER app;Выход из psql — \q. Приложение подключается к адресу localhost, порт 5432, с этими именем и паролем. Проверить вход: psql -h localhost -U app app.
| Команда psql | Что делает |
|---|---|
| \l | список баз |
| \c app | перейти в базу app |
| \dt | таблицы в текущей базе |
| \du | пользователи |
| \q | выход |
Где настройки
| Ubuntu и Debian | AlmaLinux | |
|---|---|---|
| настройки | /etc/postgresql/<версия>/main/postgresql.conf | /var/lib/pgsql/data/postgresql.conf |
| кто и откуда может войти | /etc/postgresql/<версия>/main/pg_hba.conf | /var/lib/pgsql/data/pg_hba.conf |
| журнал | journalctl -u postgresql или /var/log/postgresql/ | /var/lib/pgsql/data/log/ |
После правки pg_hba.conf хватит sudo systemctl reload postgresql, после postgresql.conf обычно нужен restart.
Доступ с другого сервера
Сначала подумайте, нужен ли он. Если к базе подключаетесь только вы — программой с компьютера, — порт открывать не нужно, хватит SSH-туннеля: ssh -L 5432:127.0.0.1:5432 ubuntu@203.0.113.10.
Если к базе ходит приложение с другого сервера:
- В
postgresql.conf— слушать все адреса:listen_addresses = '*'. - В конец
pg_hba.conf— разрешить вход одному адресу и только с паролем:host app app 198.51.100.7/32 scram-sha-256. - Перезапустите базу:
sudo systemctl restart postgresql. - В межсетевом экране откройте порт 5432 только для этого адреса — Как открыть порт.
Резервные копии
Копия одной базы в сжатом формате:
sudo -u postgres pg_dump -Fc app > app-$(date +%F).dumpВосстановить в пустую базу:
sudo -u postgres createdb -O app app_restored
sudo -u postgres pg_restore -d app_restored app-2026-10-12.dumpВсе базы и пользователи разом — sudo -u postgres pg_dumpall > all.sql, восстановление — sudo -u postgres psql -f all.sql.
Копии по расписанию — через cron. Храните их не только на этом сервере: снимок сервера и копия рядом с базой пропадут вместе с ним.
Перенос с другого сервера
Выгрузите базу на старом сервере (pg_dump -Fc), перенесите файл — например, через scp, — создайте пользователя и пустую базу на новом и восстановите pg_restore. Выгрузку из старой версии PostgreSQL можно восстанавливать в более новую.
Не нашли ответ? Напишите в поддержку — подскажем.


