Установка и подключение к базе
Ставим сервер PostgreSQL и подключаемся к нему первым клиентом.
Сервер PostgreSQL — это фоновый процесс, который управляет базами данных и отвечает на запросы клиентов, подключающихся к нему по сети или локально.
Сервер, кластер, база, роль
Прежде чем устанавливать, разберёмся в терминах — без них легко запутаться.
- Сервер (instance) — запущенный процесс PostgreSQL, слушающий порт (по умолчанию
5432). - Кластер — набор баз данных, которыми управляет один сервер. Слово «кластер» здесь не про несколько машин, а про каталог с данными на диске.
- База данных (database) — изолированное хранилище таблиц. Внутри одного кластера их может быть много.
- Роль (role) — пользователь или группа. Под ролью вы подключаетесь и получаете права.
Установка
Способ зависит от операционной системы. На Linux обычно ставят из пакетного менеджера, на macOS удобно через Homebrew, на Windows — официальным установщиком с сайта.
# Ubuntu / Debian
sudo apt update
sudo apt install postgresql postgresql-contrib
# macOS (Homebrew)
brew install postgresql@16
brew services start postgresql@16
# Проверить версию сервера
postgres --version
После установки в Linux автоматически создаётся системный пользователь и роль postgres — это суперпользователь базы. Многие команды на старте выполняют от его имени.
Подключение через psql
psql — стандартный консольный клиент. Подключиться можно, передав параметры по отдельности или одной строкой подключения.
# По отдельным параметрам: хост, порт, пользователь, база
psql -h localhost -p 5432 -U postgres -d postgres
# Часто на локальной машине достаточно короткой формы
psql -U postgres
# Войти под системным пользователем postgres (Linux)
sudo -u postgres psql
После подключения приглашение меняется на имя базы, например postgres=#. Знак # означает суперпользователя, > — обычную роль.
Строка подключения (connection URI)
Приложения чаще передают параметры одной строкой. Её формат стоит запомнить — он встречается в любой среде.
# Общий вид:
# postgresql://ПОЛЬЗОВАТЕЛЬ:ПАРОЛЬ@ХОСТ:ПОРТ/БАЗА
psql "postgresql://app_user:secret@localhost:5432/shop"
| Часть | Значение |
app_user | роль (пользователь) |
secret | пароль |
localhost:5432 | хост и порт сервера |
shop | имя базы данных |
Проверка соединения
Самый быстрый способ убедиться, что всё работает, — выполнить простой запрос. В psql наберите:
SELECT version();
Команда вернёт строку с версией сервера и платформой. Если вы её видите — сервер запущен, и вы к нему подключены.
Итог
- Сервер управляет кластером, внутри которого живут базы данных; подключаетесь вы под ролью.
- Порт по умолчанию —
5432, суперпользователь по умолчанию —postgres. - Подключиться можно отдельными флагами
psqlили строкойpostgresql://....