Все материалы
Продуктовая аналитикапрактикумстарт

Как установить PostgreSQL и написать первый запрос

Установка PostgreSQL на Windows, macOS, Linux и в Docker, подключение через psql и pgAdmin, порт и пароль по умолчанию, первые команды и частые ошибки.

КейсПрактика30 октября 2026 г.9 мин

Вы прошли первые уроки SQL в браузере и хотите свою базу: загрузить выгрузку из CRM, потренироваться на рабочих данных или повторить запрос из статьи без ограничений песочницы. Для этого нужен PostgreSQL на своём компьютере. Установка занимает минут пятнадцать, а застревают обычно не на ней, а на подключении: какой пароль, какой порт, почему «role does not exist». Ниже — установка на Windows, macOS, Linux и в Docker, подключение через psql и графические программы, первая база и первый запрос, а в конце — разбор ошибок, которые встречаются чаще всего.

Коротко

  • PostgreSQL — сервер. Он работает в фоне, а вы подключаетесь к нему программой-клиентом: psql в терминале или pgAdmin и DBeaver с окнами.
  • Для подключения нужны пять вещей: адрес (localhost), порт (по умолчанию 5432), пользователь, пароль и имя базы.
  • Пароля по умолчанию нет. На Windows вы задаёте его при установке, в Docker — переменной POSTGRES_PASSWORD, на Linux вход идёт от системного пользователя postgres.
  • Быстрее всего проверить установку командой select version();.
  • Если устанавливать ничего не хочется, первые сотни запросов удобнее писать в онлайн-песочнице: там уже есть учебная база.

Нужно ли вам ставить PostgreSQL

Для изучения SQL установка не обязательна. Песочница симулятора SQL-аналитика выполняет запросы прямо в браузере на учебной базе продукта: пять таблиц, 45 тысяч строк, все примеры статей сайта. Ставить сервер стоит, когда вам нужно то, чего в песочнице нет: свои данные, команды CREATE, INSERT и UPDATE, транзакции, индексы и план запроса через EXPLAIN.

Второй довод — работа. В большинстве компаний рабочая база продукта живёт в PostgreSQL или в СУБД на его основе. Если вы хоть раз сами создали пользователя, базу и подключились к ней, первый доступ к реплике на новой работе не вызовет вопросов.

Установка на Windows

На странице загрузки postgresql.org для Windows есть ссылка на установщик от компании EDB. Выберите последнюю стабильную версию. Мастер установки спросит несколько вещей, и три из них важны.

После установки в меню «Пуск» появится SQL Shell (psql). Он по очереди спросит сервер, базу, порт и пользователя: на всё можно нажать Enter, чтобы принять значения в скобках, а потом ввести пароль из шага установки. Если вместо русских букв видите кракозябры и предупреждение о кодовой странице консоли, выполните в окне psql команду \! chcp 1251 или запускайте psql из Windows Terminal.

  • Компоненты: оставьте PostgreSQL Server, pgAdmin 4 и Command Line Tools. Stack Builder для учёбы не нужен.
  • Пароль суперпользователя postgres. Запишите его: восстановить пароль сложнее, чем установить PostgreSQL заново.
  • Порт: оставьте 5432, если на компьютере нет другой копии PostgreSQL.

Установка на macOS

Самый простой путь — Postgres.app. Скачайте приложение с postgresapp.com, перенесите в «Программы», запустите и нажмите Initialize. Сервер запустится, а в окне появятся базы. Чтобы psql работал в терминале, добавьте его в PATH одной командой из инструкции Postgres.app и откройте терминал заново.

Если вы пользуетесь Homebrew, поставьте пакет postgresql@<версия> и запустите службу через brew services start. Важная деталь Homebrew: суперпользователем становится ваше имя пользователя в macOS, а не postgres. Поэтому подключение psql -U postgres вернёт «role postgres does not exist», а psql postgres без флага -U сработает.

Установка на Linux

В Ubuntu и Debian PostgreSQL есть в стандартных репозиториях: sudo apt install postgresql. Сервер стартует сам. Вход по умолчанию устроен через системного пользователя: команда sudo -u postgres psql открывает psql от имени суперпользователя postgres без пароля.

Работать постоянно под суперпользователем неудобно и небезопасно. Создайте себе пользователя с паролем и базу, которой он владеет. Если имя пользователя PostgreSQL совпадёт с вашим именем в системе, дальше можно подключаться коротким psql mayak.

PostgreSQL only: свой пользователь и база вместо суперпользователя postgres
-- выполняется в psql под пользователем postgres
create user analyst with password 'придумайте-пароль';
create database mayak owner analyst;

PostgreSQL в Docker

Если Docker уже установлен, это самый чистый вариант: сервер живёт в контейнере, не трогает систему и удаляется одной командой. Контейнер запускают так: docker run --name pg -e POSTGRES_PASSWORD=analyst -p 5432:5432 -v pgdata:/var/lib/postgresql/data -d postgres:17.

Здесь POSTGRES_PASSWORD задаёт пароль пользователя postgres — без этой переменной контейнер не запустится. Флаг -p пробрасывает порт 5432 наружу, чтобы к серверу могли подключиться pgAdmin и DBeaver. Том pgdata сохраняет данные, если контейнер удалить. Номер после двоеточия — версия PostgreSQL; у образов 18 и новее каталог данных внутри контейнера другой, и путь тома нужно взять из описания образа. Открыть psql внутри контейнера: docker exec -it pg psql -U postgres.

Как подключиться: psql, pgAdmin, DBeaver

Сервер установлен, теперь нужен клиент. Все три варианта ниже подключаются к одному и тому же серверу, их можно ставить одновременно. Для подключения в любом из них заполните одни и те же поля.

Параметры подключения к локальному PostgreSQL
ПолеЗначениеКомментарий
Hostlocalhostсервер на этом же компьютере или в Docker с пробросом порта
Port5432порт PostgreSQL по умолчанию
Userpostgresна macOS через Homebrew — ваше имя пользователя
Passwordзаданный при установкев Docker — значение POSTGRES_PASSWORD
Databasepostgresслужебная база, есть всегда; свою создадите ниже
  • psql — консольный клиент из комплекта PostgreSQL. Быстрый и есть везде, включая серверы, где графики нет.
  • pgAdmin 4 — официальный графический клиент. Ставится вместе с PostgreSQL на Windows, на других системах скачивается с pgadmin.org.
  • DBeaver Community — бесплатный универсальный клиент. Удобен, если кроме PostgreSQL придётся работать с MySQL, ClickHouse или SQLite.

Команды psql, которые нужны в первый день

Кроме SQL psql понимает свои служебные команды. Они начинаются с обратной косой черты и не требуют точки с запятой. Обычный SQL-запрос, наоборот, выполняется только после ; — если psql не реагирует на Enter и показывает приглашение mayak-#, вы просто не поставили точку с запятой.

Основные команды psql
КомандаЧто делает
psql -h localhost -U postgres -d mayakподключиться из терминала к базе mayak
\lсписок баз на сервере
\c mayakпереключиться на базу mayak
\dtсписок таблиц текущей базы
\d ordersстолбцы, типы и индексы таблицы orders
\duпользователи и их права
\i путь/к/файлу.sqlвыполнить SQL из файла
\xпоказывать широкие строки столбиком
\timingпоказывать время выполнения каждого запроса
\qвыйти из psql

Проверка версии

Первый запрос после подключения — проверить, что сервер отвечает и какая у него версия. Короткий вариант без лишнего текста — show server_version;. Версия пригодится, когда будете читать документацию: функции и синтаксис иногда добавляются только в новых версиях.

PostgreSQL only: версия сервера, текущая база и пользователь
select
  version(),
  current_database(),
  current_user;

Первая база и первый запрос

Подключитесь к своей базе и создайте маленькую таблицу заказов. Три строки ниже — учебные, их хватит, чтобы проверить, что запись и чтение работают. Блок можно выполнить целиком в psql, pgAdmin или DBeaver.

Запрос в конце возвращает три заказа на 4 700 со средним чеком 1 566,67. Если вы видите эти числа, PostgreSQL установлен, вы подключены к нужной базе и у вашего пользователя есть права на создание таблиц.

Ожидаемый результат
ordersrevenueavg_check
34700.001566.67
PostgreSQL only: учебная таблица заказов — создать, заполнить, посчитать
create table orders (
  order_id   integer primary key,
  user_id    integer not null,
  ordered_at date    not null,
  amount     numeric(10, 2) not null
);

insert into orders (order_id, user_id, ordered_at, amount) values
  (1, 101, '2026-10-01', 1500),
  (2, 102, '2026-10-01', 2400),
  (3, 101, '2026-10-02',  800);

select
  count(*)                   as orders,
  sum(amount)                as revenue,
  round(avg(amount), 2)      as avg_check
from orders;

Как загрузить свои данные

Чаще всего данные приходят файлом CSV. Создайте таблицу с нужными столбцами и загрузите файл командой psql \copy: \copy orders from 'orders.csv' with (format csv, header true). В отличие от SQL-команды COPY, \copy читает файл с вашего компьютера, а не с сервера, поэтому работает и с PostgreSQL в Docker, и с удалённым сервером.

В pgAdmin то же делает пункт Import/Export Data в контекстном меню таблицы, в DBeaver — Import Data. Если загрузка падает с ошибкой типа, сначала загрузите всё в таблицу с текстовыми столбцами, а потом приведите типы запросом: так видно, какая строка ломает импорт.

Частые ошибки подключения

Почти все проблемы первого дня — это одна из пяти ошибок ниже. Текст ошибки в PostgreSQL обычно точно говорит, какого из пяти параметров подключения не хватает.

Ошибка — причина — что сделать
СообщениеПричинаЧто сделать
connection to server … failed: Connection refused или No such file or directoryсервер не запущен или слушает другой портзапустите службу, Postgres.app или контейнер; проверьте порт
password authentication failed for user "postgres"неверный парольпроверьте пароль из установки или POSTGRES_PASSWORD
role "postgres" does not existна macOS через Homebrew суперпользователь — ваше имяподключайтесь без -U или с -U <ваше имя>
database "analyst" does not existpsql по умолчанию ищет базу с именем пользователяукажите базу явно: -d postgres или -d mayak
permission denied for schema publicу пользователя нет прав на создание таблицсделайте пользователя владельцем базы, как в разделе про Linux

Что делать дальше

Когда сервер работает, полезно пройти три вещи, которых нет в песочнице: транзакции с BEGIN и ROLLBACK, индексы и план запроса через EXPLAIN ANALYZE. Для логики запросов — группировок, соединений, оконных функций — свой сервер не обязателен: на учебной базе в браузере это быстрее, а курс «SQL с нуля» проверяет каждое решение.

Частые вопросы

Какой порт у PostgreSQL по умолчанию?

5432. Если на компьютере уже есть другая копия PostgreSQL, установщик предложит другой порт, обычно 5433, — тогда указывайте его при подключении.

Какой пароль у пользователя postgres по умолчанию?

Пароля по умолчанию нет. На Windows его задают в установщике, в Docker — переменной POSTGRES_PASSWORD, а на Linux вход идёт без пароля через sudo -u postgres psql.

Как узнать версию PostgreSQL?

Выполните select version(); или show server_version; в любом клиенте. В терминале без подключения — psql --version, но это версия клиента, она может отличаться от версии сервера.

Что выбрать: pgAdmin или DBeaver?

Если работаете только с PostgreSQL, хватит pgAdmin. Если в компании несколько СУБД, удобнее DBeaver: одно окно для PostgreSQL, ClickHouse и MySQL.

Как удалить базу?

Командой drop database mayak;, подключившись к другой базе, например postgres. Удалить базу, к которой вы сейчас подключены, нельзя.

Пока сервер ставится, попробуйте первые запросы в песочнице: учебная база и проверка решений там уже готовы.

Продолжить чтение
Вся библиотека