Установка и запуск: PostgreSQL, SQLite, онлайн-песочница
Установка и запуск: PostgreSQL, SQLite, онлайн-песочница
В прошлых уроках мы говорили на уровне идей: что такое база данных, как устроена реляционная модель, чем SQL похож и не похож в разных СУБД. Сегодня — самый практический урок модуля. Никаких абстракций: открываем терминал, ставим инструменты, проверяем версии. Цель — чтобы у тебя на компьютере (или хотя бы во вкладке браузера) появилась работающая «лаборатория», в которой со следующего урока мы начнём писать настоящие запросы.
Я не буду заставлять тебя выбирать «правильный» вариант. Я расскажу про три пути и покажу установку каждого. Дальше ты выберешь тот, что подходит твоей ситуации — это нормально, что у разных людей разные стартовые условия.
Какой путь выбрать новичку
Перед установкой полезно понять, какие вообще варианты у нас есть. Их три:
- SQLite локально. Минимум настройки, работает «из коробки», файл базы — это просто файл на диске. Идеально, чтобы попробовать SQL без головной боли.
- PostgreSQL локально. Настоящая «взрослая» СУБД с сервером. Чуть сложнее в установке, но именно с такими инструментами работают в промышленных проектах.
- Онлайн-песочница. Ничего не ставишь — открыл вкладку и пишешь. Удобно, если ты на чужом ноутбуке, на корпоративной машине без прав администратора, или просто хочешь быстро проверить идею.
Если короткое правило для новичка: поставь SQLite + держи в закладках одну онлайн-песочницу. Этого хватит на весь курс. PostgreSQL добавь позже, когда захочешь приблизиться к боевым условиям. Ниже разберём каждый вариант подробно.
SQLite: самый простой старт
SQLite — это, по сути, библиотека и маленькая утилита sqlite3. Никакого «сервера» запускать не нужно, никаких портов, никаких пользователей. Ты просто говоришь утилите «вот файл» — и она читает или пишет в него. Если файла нет, SQLite его создаст. Это и плюс, и минус: плюс — простота; минус — SQLite не подходит для ситуаций, где к одной базе одновременно ломятся десятки приложений по сети.
Для обучения это идеальный инструмент. Ты буквально работаешь с одним файлом вида mydb.db и можешь его удалить, если что-то сломал. Никаких следов в системе.
Установка
На macOS утилита sqlite3 уже есть в системе, но версия там старая. Поставим свежую через Homebrew. На Ubuntu/Debian — через apt. На Windows — скачаем готовый набор инструментов с официального сайта.
# macOS (через Homebrew)
brew install sqlite
# Ubuntu / Debian / WSL
sudo apt update
sudo apt install sqlite3
# Проверка версии (на любой ОС)
sqlite3 --version
Для Windows официальные сборки лежат на странице загрузок: https://sqlite.org/download.html — раздел «Precompiled Binaries for Windows». Нужен архив вида sqlite-tools-win-x64-*.zip. Распакуй его в любую папку (например, C:\sqlite) и добавь эту папку в переменную окружения PATH, чтобы команда sqlite3 работала из любого места в командной строке. Подробности про PATH — чуть ниже, в разделе «Типичные проблемы».
После установки в терминале набери sqlite3 --version. В ответ ты должен увидеть строку вроде 3.46.1 2024-08-13 .... Если увидел номер версии — поздравляю, у тебя уже есть рабочая СУБД. Запускать запросы пока не будем — это в следующем уроке.
Проверь себя: ты ввёл
sqlite3 --version, и терминал ответилcommand not found. Что это значит? — Это значит, что либо утилита не установлена, либо установлена, но папка с ней не прописана вPATH. Проблема не в SQLite как таковом, а в том, что система не знает, где её искать.
PostgreSQL: «взрослый» сервер
PostgreSQL — другая история. Это полноценный сервер: отдельный процесс, который слушает сетевой порт (по умолчанию 5432), управляет пользователями, правами и одновременным доступом многих клиентов. Ты не открываешь файл напрямую — ты подключаешься к серверу, а он уже сам разбирается со своими файлами. Это надёжнее и мощнее, но требует чуть больше понимания.
Для PostgreSQL нужны две вещи: сам сервер (он работает в фоне) и клиентская утилита psql, через которую с ним общаются из терминала. Обычно они ставятся вместе.
Способы установки
Их несколько — выбирай по вкусу:
- Официальный установщик (рекомендуется для Windows и macOS, если не любишь терминал): https://www.postgresql.org/download/. Там есть установщик от EDB — графический мастер, ставит сервер,
psqlи приложение pgAdmin для работы мышкой. - Postgres.app (только macOS): https://postgresapp.com/. Это «PostgreSQL в виде .app-файла» — перетащил в Applications, запустил, готово. Удобно, если не хочется возиться с сервисами.
- Homebrew (macOS, Linux): один из самых быстрых способов на Mac.
- Пакеты дистрибутива (
apt,dnf): стандартный путь на Linux-серверах. - Docker: запустить PostgreSQL в контейнере одной командой. Подходит, если у тебя уже стоит Docker и не хочется ставить сервер «в систему». Для новичка — необязательный вариант.
Команды установки
# macOS (через Homebrew) — ставим версию 16
brew install postgresql@16
brew services start postgresql@16
# Ubuntu / Debian
sudo apt update
sudo apt install postgresql
# Проверка клиента (на любой ОС)
psql --version
На Windows проще всего пройти по ссылке https://www.postgresql.org/download/windows/ и запустить установщик от EDB. Мастер спросит пароль для системного пользователя postgres (запиши его — пригодится) и порт (оставь 5432, если он свободен). После установки psql появится в меню «Пуск» и в PATH.
Команда psql --version должна показать что-то вроде psql (PostgreSQL) 16.4. Это означает, что клиент установлен. Отдельно стоит убедиться, что сервер запущен — на macOS с Homebrew за это отвечает brew services start postgresql@16, на Ubuntu сервис обычно поднимается автоматически, на Windows установщик регистрирует службу Windows. Если служба не стартует — снова смотри раздел «Типичные проблемы».
Проверь себя: в чём разница между
sqlite3иpsql? —sqlite3— это и утилита, и сама СУБД в одном лице: ей не нужен сервер.psql— это только клиент, который сам по себе ничего не хранит; ему обязательно нужен запущенный PostgreSQL-сервер где-то рядом (на твоей машине или на удалённой).
Онлайн-песочницы: SQL без установки
Если ставить ничего не хочется — это абсолютно нормальный путь, особенно на старте. Онлайн-песочница это сайт, где есть текстовое поле для запроса, кнопка «выполнить» и таблица с результатом. Ты не возишься с установкой и можешь учиться даже с планшета.
Плюсы: ноль настройки, работает в браузере, легко делиться ссылкой на свой пример. Минусы: интернет обязателен, файл «своей» базы у тебя не остаётся, а сам сайт может измениться или закрыться. Поэтому я бы не делал онлайн-песочницу единственным инструментом — но как дополнение к локальной установке она очень полезна.
Три рабочих варианта:
- https://sqlime.org/ — простая песочница для SQLite прямо в браузере (работает на WebAssembly-сборке SQLite). Хороша тем, что использует тот же диалект, что и локальный SQLite.
- https://dbfiddle.uk/ — поддерживает много СУБД, включая разные версии PostgreSQL и SQLite. Удобно сравнивать диалекты — мы говорили об этом в уроке 1-3.
- https://www.db-fiddle.com/ — ещё одна популярная песочница с PostgreSQL, MySQL, SQLite. Похожа по идее на предыдущую.
Для курса не нужно выбирать «лучшую» — открой одну, которая быстрее загрузилась, и запомни её адрес.
Что выбрать конкретно для этого курса
Моя рекомендация:
- Основной инструмент: SQLite локально. Поставил, проверил
sqlite3 --version, готово. Все упражнения курса можно сделать на нём. - Запасной инструмент: онлайн-песочница (например, https://sqlime.org/ или https://dbfiddle.uk/). Полезно, когда ты не за своим компьютером или хочешь быстро поделиться примером с однокурсником.
- PostgreSQL — по желанию. Если ты планируешь работать с базами данных в проде, имеет смысл поставить и его, чтобы привыкать к диалекту PostgreSQL и к идее клиент-серверной архитектуры. Но это не обязательное условие первых уроков.
Если ты прямо сейчас в тупике с установкой — открой онлайн-песочницу и продолжай курс. Установку можно догнать позже, главное — не застрять на ней.
Типичные проблемы при установке
Опытные разработчики тоже спотыкаются на одних и тех же местах. Вот три самых частых:
1. «command not found или утилита не запускается».
Скорее всего, дело в PATH. Это переменная окружения, в которой перечислены папки, где система ищет исполняемые файлы. Если ты распаковал sqlite3.exe в C:\sqlite, но не добавил эту папку в PATH, Windows не найдёт команду. На macOS и Linux Homebrew и apt обычно настраивают PATH автоматически. Если нет — проверь инструкции по итогам установки: Homebrew часто просит выполнить дополнительную команду, чтобы добавить себя в PATH.
2. «Нет прав / permission denied».
На Linux установка системных пакетов требует sudo — мы уже видели это в командах sudo apt install. На macOS и Windows важно ставить инструменты от своего пользователя, а не «расшаривать» базу на весь компьютер. Если установщик PostgreSQL для Windows ругается — запусти его «от имени администратора».
3. «Порт 5432 занят».
PostgreSQL по умолчанию слушает порт 5432. Если этот порт уже занят (например, ты запустил два инстанса Postgres или у тебя установлен другой сервис на этом порту), сервер не стартует. Решения два: остановить «лишний» процесс или поставить PostgreSQL на другой порт через настройки. Для учебных задач достаточно убедиться, что других PostgreSQL на машине нет, и порт свободен.
Если что-то совсем не получается — не страдай в одиночку. Сообщение об ошибке гугли дословно: 9 из 10 проблем установки уже описаны на Stack Overflow или в issue-трекерах самих СУБД.
Краткий итог
- Есть три пути попробовать SQL: SQLite локально, PostgreSQL локально, онлайн-песочница.
- SQLite — самый простой старт: один файл, никакой настройки, ставится одной командой через
brew install sqliteилиsudo apt install sqlite3. - PostgreSQL — это сервер плюс клиент
psql. Ставится через официальный установщик, Postgres.app, Homebrew илиapt. - Онлайн-песочницы (
sqlime.org,dbfiddle.uk,db-fiddle.com) дают возможность писать SQL вообще без установки. - Для этого курса достаточно SQLite + любой онлайн-песочницы. PostgreSQL — по желанию, на будущее.
- Главные источники истины: https://www.postgresql.org/download/ и https://sqlite.org/download.html — никогда не качай СУБД из случайных мест.
В следующем уроке мы наконец-то запустим инструмент, проверим, что он отвечает, и сделаем самый первый запрос к базе. Подготовь терминал — он нам понадобится.