Документация / Администрирование
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