Документация / Администрирование

PostgreSQL 16

Обновлено 14.11.2026

Установка

setup update
setup install postgresql

Пакет устанавливает определение /etc/services/postgres и программы в /usr/lib/postgresql/16/bin/. При первом запуске служба создаёт системного пользователя и группу postgres, если их ещё нет, и инициализирует пустой каталог данных /var/lib/postgresql/16/data. Существующий кластер не инициализируется повторно.

Первый запуск

service start postgres
service status postgres
tail -n 30 /var/log/postgres.log

Новый кластер разрешает вход через локальный сокет с методом trust; каталог сокета доступен только пользователю postgres и администратору. Для подключений по TCP с первого запуска требуется SCRAM-пароль.

Поставляемый запуск поднимает TCP на 127.0.0.1:5432 и локальный сокет в /var/lib/postgresql/16/. postgresql.conf и pg_hba.conf находятся в каталоге данных. Параметры, переданные postgres-start в командной строке, имеют приоритет над конфигурацией.

Подключение

su -l postgres
/usr/lib/postgresql/16/bin/psql -h /var/lib/postgresql/16 -d postgres

Создайте отдельную роль и базу для приложения в интерактивном psql.

CREATE ROLE app LOGIN;
CREATE DATABASE app OWNER app;

Задайте пароль роли командой \password app в psql. Выйдите из psql командой \q, затем из сеанса пользователя postgres командой exit.

Для приложения создайте файл паролей с записью 127.0.0.1:5432:app:app:ПАРОЛЬ. Укажите владельцем пользователя приложения и установите права 0600. Для обычного клиента используйте ~/.pgpass, для службы можно задать PGPASSFILE в скрипте запуска.

chmod 600 "$HOME/.pgpass"
/usr/lib/postgresql/16/bin/psql -h 127.0.0.1 -U app -d app -c 'SELECT 1;'
tail -n 30 /var/log/postgres.log