3 сентября 20265 мин чтения
Портативная установка PostgreSQL (без инсталлятора) для Windows
Нужно для локальной разработки своего MVP-продукта.
Евгений Васёв
Автор гайда
---
Windows
1. Скачай архив с PostgreSQL
Перейди на официальную страницу загрузки и скачай zip-архив с бинарниками.
Способ — через сайт:
- Открой браузер
- Перейди на https://get.enterprisedb.com/postgresql/postgresql-17.2-1-windows-x64-binaries.zip
- Скачай zip-файл
Важно: Нам нужен именно zip-архив, а не
.exe-инсталлятор. На этой странице — только архивы.
---
2. Распакуй архив в рабочую папку
Создай папку проекта и распакуй туда скачанный архив.
- Создай папку
C:\projects\postgres(либо ваша директория с проектом) - Внутри неё создай папку
downloads\pg17 - Распакуй скачанный zip-архив в
C:\projects\postgres\downloads\pg17
После распаковки структура должна выглядеть так:
C:\projects\postgres\
└── downloads\
└── pg17\
└── pgsql\
├── bin\ ← исполняемые файлы
├── lib\ ← библиотеки
├── share\ ← конфигурации и расширения
└── ...
Убедись, что внутри
pgsql\bin\есть файлыinitdb.exe,pg_ctl.exeиpsql.exe— это ключевые программы.
---
3. Открой терминал
Нам понадобится командная строка для всех дальнейших шагов.
Способ 1 — через поиск (самый быстрый):
- Нажми Win
- Напиши
cmdилиPowerShell - Нажми Enter
Способ 2 — через меню:
- Нажми правой кнопкой мыши на Пуск
- Выбери Терминал (или Windows PowerShell)
Все команды ниже одинаково работают и в cmd, и в PowerShell.
---
4. Создай папки для данных и логов
PostgreSQL хранит все данные в отдельной папке. Создадим её, а заодно и папку для логов.
mkdir C:\projects\postgres\data
mkdir C:\projects\postgres\logs
После выполнения у тебя появятся две пустые папки:
data— сюда PostgreSQL запишет все файлы базы данныхlogs— сюда будет писаться лог сервера
---
5. Инициализируй базу данных
Этот шаг создаёт начальную структуру базы данных внутри папки data.
C:\projects\postgres\downloads\pg17\pgsql\bin\initdb.exe -D C:\projects\postgres\data -U postgres -E UTF8 --locale=C
Разберём параметры:
| Параметр | Что делает | |---|---| | -D ... | Путь к папке с данными | | -U postgres | Имя суперпользователя базы | | -E UTF8 | Кодировка базы данных | | --locale=C | Нейтральная локаль (избегает проблем с сортировкой) |
В конце вывода ты увидишь сообщение вроде «Готово» или «Success». Это значит, что кластер базы создан.
Важно: Команда создаст базу с аутентификацией
trust— это значит, подключиться может кто угодно с этого же компьютера без пароля. Для локальной разработки это нормально. Для продакшена — нет.
---
6. Запусти сервер PostgreSQL
Теперь запустим сам сервер базы данных.
C:\projects\postgres\downloads\pg17\pgsql\bin\pg_ctl.exe -D C:\projects\postgres\data -l C:\projects\postgres\logs\postgresql.log -o "-p 5433 -h localhost" start
Разберём параметры:
| Параметр | Что делает | |---|---| | -D ... | Путь к данным (тот же, что при initdb) | | -l ... | Путь к файлу лога | | -o "-p 5433 -h localhost" | Порт 5433 и только локальные подключения |
Мы используем порт 5433 вместо стандартного 5432, чтобы не конфликтовать с другой копией PostgreSQL, если она уже установлена в системе. Если конфликта нет, можно использовать
5432.
Ты должен увидеть сообщение:
сервер запущен
или на английской системе:
server started
Если видишь ошибку — проверь лог:
```
type C:\projects\postgres\logs\postgresql.log
```
---
7. Проверь подключение
Подключимся к базе и выполним тестовый запрос.
C:\projects\postgres\downloads\pg17\pgsql\bin\psql.exe -h localhost -p 5433 -U postgres -c "SELECT version();"
Ты должен увидеть что-то вроде:
version
-------------------------------------------------------------------------
PostgreSQL 17.2 on x86_64-windows, compiled by msvc-19.41.34123, 64-bit
(1 row)
Если версия отобразилась — всё работает.
---
8. Подключись к интерактивной консоли (необязательно)
Чтобы вручную выполнять SQL-запросы, можно зайти в интерактивный режим psql:
C:\projects\postgres\downloads\pg17\pgsql\bin\psql.exe -h localhost -p 5433 -U postgres
После подключения ты увидишь приглашение:
postgres=#
Попробуй выполнить любую команду, например:
SELECT current_date;
Как выйти из psql?
Напиши \q и нажми Enter, или нажми Ctrl + D.
---
Управление сервером
После настройки тебе понадобятся три команды для управления:
Остановить сервер:
C:\projects\postgres\downloads\pg17\pgsql\bin\pg_ctl.exe -D C:\projects\postgres\data stop
Запустить сервер:
C:\projects\postgres\downloads\pg17\pgsql\bin\pg_ctl.exe -D C:\projects\postgres\data -l C:\projects\postgres\logs\postgresql.log -o "-p 5433 -h localhost" start
Проверить статус сервера:
C:\projects\postgres\downloads\pg17\pgsql\bin\pg_ctl.exe -D C:\projects\postgres\data status
Важно: Сервер работает, пока ты его не остановишь, или пока не перезагрузишь компьютер. После перезагрузки нужно запустить его снова командой выше.
---
Частые проблемы
Порт уже занят:
Если при запуске видишь ошибку
could not bind to address, значит порт 5433 уже используется. Попробуй другой порт, например 5434:
```
C:\projects\postgres\downloads\pg17\pgsql\bin\pg_ctl.exe -D C:\projects\postgres\data -l C:\projects\postgres\logs\postgresql.log -o "-p 5434 -h localhost" start
```
Папка data уже существует и не пуста:
Если
initdbвыдаёт ошибку, что папка не пуста — значит инициализация уже была выполнена ранее. Если хочешь начать с нуля, удали содержимое папкиdataи запустиinitdbснова.
Сервер не запускается, нет внятной ошибки:
Проверь лог-файл — там всегда есть подробности:
```
type C:\projects\postgres\logs\postgresql.log
```
psql: ошибка подключения / connection refused:
Убедись, что сервер запущен (
pg_ctl status) и что указан правильный порт (-p 5433).
---
Итоговая структура проекта
C:\projects\postgres\
├── data\ ← данные базы (создаётся initdb)
├── logs\ ← логи сервера
│ └── postgresql.log
├── downloads\
│ └── pg17\
│ └── pgsql\
│ └── bin\ ← бинарники PostgreSQL
└── INSTRUCTION.md ← этот файл
---
Параметры подключения
| Параметр | Значение | |---|---| | Хост | localhost | | Порт | 5433 | | Пользователь | postgres | | Пароль | (не требуется) | | База данных | postgres |
Эти параметры понадобятся при подключении из приложений, IDE (например, DataGrip, DBeaver) или библиотек (например, psycopg2, node-postgres).
---
Готово!
У тебя развёрнута портативная копия PostgreSQL 17, которая:
- Не требует установки и прав администратора
- Полностью живёт в одной папке
C:\projects\postgres - Не вносит изменений в реестр и системные сервисы
- Легко удаляется — просто удали папку
Анонсы вебинаров и новых курсов в телеграм-боте
Смежное по задаче
Установка Cursor на macOS
Установка редактора кода Cursor со встроенным ИИ-помощником на macOS.
ЧитатьУстановка Cursor на Windows
Установка редактора кода Cursor со встроенным ИИ-помощником на Windows.
ЧитатьУстановка Claude Code на Windows
Пошаговая инструкция по установке Claude Code на Windows. PowerShell, Git, настройка PATH.
Читать