Как установить PostgreSQL и написать первый запрос
Установка PostgreSQL на Windows, macOS, Linux и в Docker, подключение через psql и pgAdmin, порт и пароль по умолчанию, первые команды и частые ошибки.
Содержание статьи
Вы прошли первые уроки 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.
-- выполняется в 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
Сервер установлен, теперь нужен клиент. Все три варианта ниже подключаются к одному и тому же серверу, их можно ставить одновременно. Для подключения в любом из них заполните одни и те же поля.
| Поле | Значение | Комментарий |
|---|---|---|
| Host | localhost | сервер на этом же компьютере или в Docker с пробросом порта |
| Port | 5432 | порт PostgreSQL по умолчанию |
| User | postgres | на macOS через Homebrew — ваше имя пользователя |
| Password | заданный при установке | в Docker — значение POSTGRES_PASSWORD |
| Database | postgres | служебная база, есть всегда; свою создадите ниже |
- psql — консольный клиент из комплекта PostgreSQL. Быстрый и есть везде, включая серверы, где графики нет.
- pgAdmin 4 — официальный графический клиент. Ставится вместе с PostgreSQL на Windows, на других системах скачивается с pgadmin.org.
- DBeaver Community — бесплатный универсальный клиент. Удобен, если кроме PostgreSQL придётся работать с MySQL, ClickHouse или SQLite.
Команды psql, которые нужны в первый день
Кроме SQL psql понимает свои служебные команды. Они начинаются с обратной косой черты и не требуют точки с запятой. Обычный SQL-запрос, наоборот, выполняется только после ; — если psql не реагирует на Enter и показывает приглашение mayak-#, вы просто не поставили точку с запятой.
| Команда | Что делает |
|---|---|
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;. Версия пригодится, когда будете читать документацию: функции и синтаксис иногда добавляются только в новых версиях.
select
version(),
current_database(),
current_user;Первая база и первый запрос
Подключитесь к своей базе и создайте маленькую таблицу заказов. Три строки ниже — учебные, их хватит, чтобы проверить, что запись и чтение работают. Блок можно выполнить целиком в psql, pgAdmin или DBeaver.
Запрос в конце возвращает три заказа на 4 700 со средним чеком 1 566,67. Если вы видите эти числа, PostgreSQL установлен, вы подключены к нужной базе и у вашего пользователя есть права на создание таблиц.
| orders | revenue | avg_check |
|---|---|---|
| 3 | 4700.00 | 1566.67 |
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 exist | psql по умолчанию ищет базу с именем пользователя | укажите базу явно: -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. Удалить базу, к которой вы сейчас подключены, нельзя.
Пока сервер ставится, попробуйте первые запросы в песочнице: учебная база и проверка решений там уже готовы.
Материалы по теме

DBeaver для аналитика: подключение к PostgreSQL, ClickHouse и выгрузка
Как работать в DBeaver: подключение к PostgreSQL и ClickHouse, SSH-туннель, режим только для чтения, горячие клавиши, параметры в запросе, выгрузка в CSV и Excel.

Команды psql: шпаргалка по консоли PostgreSQL
Команды psql с примерами: подключение, \l, \c, \dt, \d, \x, \timing, выполнение файла, выгрузка в CSV, пароль без ввода через .pgpass, частые ошибки и приглашения консоли.

pgAdmin 4: как подключиться к PostgreSQL и выполнить запрос
pgAdmin 4 по шагам: регистрация сервера, мастер-пароль, где искать таблицы, Query Tool и горячие клавиши, план запроса, выгрузка в CSV, импорт файла, ER-диаграмма и частые ошибки.