Перейти к содержимому

PostgreSQL на облачном сервере

Облачные серверы2 мин чтения

Как поставить 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 и DebianAlmaLinux
настройки/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.

Если к базе ходит приложение с другого сервера:

  1. В postgresql.conf — слушать все адреса: listen_addresses = '*'.
  2. В конец pg_hba.conf — разрешить вход одному адресу и только с паролем: host app app 198.51.100.7/32 scram-sha-256.
  3. Перезапустите базу: sudo systemctl restart postgresql.
  4. В межсетевом экране откройте порт 5432 только для этого адреса — Как открыть порт.
Внимание Не открывайте 5432 всему интернету: роботы начинают подбирать пароли к PostgreSQL через несколько минут после открытия порта.

Резервные копии

Копия одной базы в сжатом формате:

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 можно восстанавливать в более новую.

Не нашли ответ? Напишите в поддержку — подскажем.