Добавление официального репозитория

В Ubuntu 24.04 в репозитории по умолчанию PostgreSQL 14. Для актуальной версии добавьте официальный репозиторий:

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update

Установка

sudo apt install postgresql-16 postgresql-client-16

Проверьте: sudo systemctl status postgresql

Должно быть активное состояние (active (running)).

Базовые настройки

Подключитесь к серверу от пользователя postgres:

sudo -u postgres psql

Создайте нового пользователя и базу данных:

CREATE USER myuser WITH PASSWORD 'strongpassword123';
CREATE DATABASE mydb OWNER myuser;
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;

Завершите сессию: \q

Настройка доступа через pg_hba.conf

Файл /etc/postgresql/16/main/pg_hba.conf определяет, кто может подключаться.

Для локального доступа с паролем замените строку local all all peer на:

local   all   all   md5

Для удалённого доступа добавьте в конец файла:

host    all   myuser   192.168.1.0/24   md5

Здесь 192.168.1.0/24 — подсеть, с которой разрешён доступ. Не ставьте 0.0.0.0/0 без шифрования.

Для SSL-подключения: hostssl all myuser 0.0.0.0/0 md5

Применение изменений

sudo systemctl restart postgresql

Настройка postgresql.conf

Отредактируйте /etc/postgresql/16/main/postgresql.conf:

listen_addresses = '*'
port = 5432
max_connections = 100
shared_buffers = 1GB
effective_cache_size = 3GB

Тестирование подключения

psql -h 192.168.1.100 -U myuser -d mydb

Если подключение проходит, вы увидите приглашение mydb=>.

Автозапуск и бэкапы

sudo systemctl enable postgresql

Бэкап через pg_dump: pg_dump -U myuser mydb > backup_$(date +%Y%m%d).sql

Добавьте в crontab для автоматизации:

0 3 * * * pg_dump -U myuser mydb > /backups/mydb_$(date +\%Y\%m\%d).sql