Раздел 33 · PostgreSQL с нуля

Установка и подключение к базе

junior~20 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

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

Почта до востребования

Чтобы получить посылку на почте, нужно прийти по нужному адресу, к нужному окошку, назвать своё имя и показать паспорт. Ещё нужно сказать, какую посылку ты хочешь. Подключение к PostgreSQL устроено так же:

На почтеВ PostgreSQLПример
адрес отделенияхостlocalhost
номер окошкапорт5432
имя получателяпользователь (роль)postgres
паспортпарольsecret
какая посылкабаза данныхbookshop

Если хоть что-то из пяти неверно, посылку не выдадут. Ниже мы специально ошибёмся в каждом пункте и посмотрим, что ответит сервер.

Способ первый: Docker

Самый быстрый способ получить PostgreSQL на любой системе это Docker. Не нужно ничего ставить в систему, а удалить базу можно одной командой. Если Docker у тебя уже есть, запусти:

docker run --name pg \
  -e POSTGRES_PASSWORD=secret \
  -p 5432:5432 \
  -v pgdata:/var/lib/postgresql \
  -d postgres:18

Разберём по строкам:

  • --name pg даёт контейнеру имя, чтобы потом обращаться к нему по-человечески.
  • -e POSTGRES_PASSWORD=secret задаёт пароль главного пользователя postgres. Без него контейнер не запустится.
  • -p 5432:5432 открывает порт: соединения на порт 5432 твоего компьютера попадут в контейнер.
  • -v pgdata:/var/lib/postgresql сохраняет данные в томе pgdata. Без тома данные живут внутри контейнера и пропадут вместе с ним.
  • -d postgres:18 запускает образ PostgreSQL 18 в фоне.

Через пару секунд сервер готов. Внутри контейнера уже есть консольный клиент psql, им и подключимся:

docker exec -it pg psql -U postgres
psql (18.6 (Debian 18.6-1.pgdg13+2))
Type "help" for help.

postgres=#

Строка postgres=# это приглашение psql: он ждёт команд. Слово перед =# это имя базы, к которой ты подключён. Выйти можно командой \q.

Способ второй: пакет для системы

Если Docker не хочется, PostgreSQL ставят как обычную программу:

  • macOS. Приложение Postgres.app: скачал, перетащил в «Программы», нажал Start. Или через Homebrew: brew install postgresql@18.
  • Ubuntu и Debian. sudo apt install postgresql ставит версию из репозитория системы. Свежую версию берут из официального репозитория PostgreSQL, инструкция на странице загрузки.
  • Windows. Установщик с сайта postgresql.org. Он попросит придумать пароль для пользователя postgres: запиши его.

После установки сервер обычно запускается сам и слушает порт 5432.

При установке из пакета на Linux в системе появляется пользователь ОС с именем postgres. В первый раз подключаются от его имени:

sudo -u postgres psql

Пароль здесь не спрашивают. Сервер видит, что подключение пришло с этого же компьютера от пользователя ОС postgres, и пускает его под ролью с тем же именем. Такой способ проверки называется peer.

урок из курса

Урок из курса «PostgreSQL с нуля». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.