Установка PostgreSQL на Mac OS: Homebrew, Docker и ручная настройка | AdminWiki

PostgreSQL Mac OS установка: Полное руководство для разработчиков

17 декабря 2025 6 мин. чтения #devops #macos #postgresql #базы данных #разработка #установка PostgreSQL

Если ты разработчик или DevOps-инженер, работающий на Mac, рано или поздно тебе понадобится установить PostgreSQL — мощную реляционную СУБД с открытым исходным кодом. В этой статье я, как опытный ментор, разберу все способы установки PostgreSQL на Mac OS, от самого простого до продвинутого. Представь, что это твой личный гайд — мы пройдем путь от нуля до работающей базы данных.

Выбор метода установки PostgreSQL на Mac

Давай разберем основные подходы к установке PostgreSQL на Mac. Каждый метод имеет свои преимущества и подходит для разных сценариев.

Метод Сложность Гибкость Рекомендация
Homebrew (пакетный менеджер) Низкая Средняя Для большинства разработчиков
Postgres.app (графический) Очень низкая Низкая Для начинающих
Docker (контейнеризация) Средняя Высокая Для изоляции и нескольких версий
Сборка из исходников Высокая Максимальная Для кастомных конфигураций

Установка PostgreSQL через Homebrew (рекомендуемый способ)

Homebrew — это стандартный пакетный менеджер для Mac OS. Если у тебя его еще нет, установи его первой командой.

Шаг 1: Установка Homebrew

bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
После установки Homebrew, выполни команды, которые он предложит, чтобы добавить brew в PATH. Обычно это что-то вроде eval "$(/opt/homebrew/bin/brew shellenv)".

Шаг 2: Непосредственно установка PostgreSQL

bash
# Обновляем репозитории Homebrew
brew update

# Устанавливаем PostgreSQL (последняя стабильная версия)
brew install postgresql

Шаг 3: Запуск и настройка службы PostgreSQL

bash
# Запускаем PostgreSQL как службу (чтобы стартовала при загрузке)
brew services start postgresql

# Или запускаем однократно
pg_ctl -D /opt/homebrew/var/postgres start

Шаг 4: Создание пользователя и базы данных

По умолчанию PostgreSQL создает суперпользователя с именем твоего аккаунта Mac. Давай проверим и создадим тестовую базу.

bash
# Подключаемся к PostgreSQL
psql postgres

# Внутри psql создаем тестовую базу данных
CREATE DATABASE testdb;

# Создаем отдельного пользователя
CREATE USER devuser WITH PASSWORD 'secure_password';

# Даем пользователю права на базу
GRANT ALL PRIVILEGES ON DATABASE testdb TO devuser;

# Выходим
\q

Установка PostgreSQL через Docker

Если тебе нужна изоляция или возможность быстрого переключения между версиями PostgreSQL, Docker — отличный выбор. Это особенно полезно, если ты привык к окружению, похожему на установку Ubuntu на Mac через контейнеры.

Шаг 1: Установка Docker Desktop

Скачай и установи Docker Desktop с официального сайта: docker.com.

Шаг 2: Запуск контейнера PostgreSQL

bash
# Запускаем контейнер с PostgreSQL 15
# -d: в фоновом режиме
# --name: имя контейнера
# -e: переменные окружения (пароль)
# -p: проброс портов (5432 на Mac -> 5432 в контейнере)
# -v: том для сохранения данных

docker run -d \
  --name postgres-container \
  -e POSTGRES_PASSWORD=mysecretpassword \
  -e POSTGRES_USER=customuser \
  -e POSTGRES_DB=mydatabase \
  -p 5432:5432 \
  -v pgdata:/var/lib/postgresql/data \
  postgres:15

Шаг 3: Подключение к контейнеру

bash
# Подключаемся к PostgreSQL внутри контейнера
# Используем пароль и пользователя, заданные при запуске
docker exec -it postgres-container psql -U customuser -d mydatabase
Внимание: При использовании Docker убедись, что порт 5432 не занят другими экземплярами PostgreSQL (например, установленными через Homebrew). Или используй другой порт, например -p 5433:5432.

Базовая настройка PostgreSQL после установки

После успешной установки PostgreSQL на Mac OS, давай выполним несколько важных настроек для комфортной работы.

Настройка аутентификации (pg_hba.conf)

Для локальной разработки часто удобно использовать trust-аутентификацию. Найдем и отредактируем файл pg_hba.conf.

bash
# Путь к файлу при установке через Homebrew
/opt/homebrew/var/postgres/pg_hba.conf

# Путь в Docker контейнере
/var/lib/postgresql/data/pg_hba.conf

Добавь или измени строку для локальных подключений:

config
# TYPE  DATABASE        USER            ADDRESS                 METHOD
local   all             all                                     trust
host    all             all             127.0.0.1/32            trust
host    all             all             ::1/128                 trust
Метод trust разрешает подключение без пароля только с локального компьютера. Для продакшена всегда используй более строгие методы (md5, scram-sha-256).

Настройка основных параметров (postgresql.conf)

config
# Увеличим размер shared_buffers для лучшей производительности
shared_buffers = 128MB

# Включим логирование для отладки
logging_collector = on
log_directory = 'log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'

# Разрешим подключения со всех IP (только для разработки!)
listen_addresses = '*'

Полезные команды для управления PostgreSQL

Запомни эти команды — они сэкономят тебе много времени.

  • Проверка статуса: brew services list (для Homebrew) или docker ps (для Docker)
  • Остановка службы: brew services stop postgresql
  • Перезагрузка: brew services restart postgresql
  • Подключение к базе: psql -d mydatabase -U myuser
  • Просмотр списка баз: \l (внутри psql)
  • Просмотр таблиц: \dt (внутри psql)

Решение частых проблем при установке

Ошибка: "Port 5432 already in use"

Порт занят другим процессом PostgreSQL. Решения:

bash
# Найдем процесс, использующий порт 5432
lsof -i :5432

# Убиваем процесс (если он не нужен)
kill -9 PID_ПРОЦЕССА

# Или меняем порт в postgresql.conf
port = 5433

Ошибка: "Role \"username\" does not exist"

PostgreSQL не находит пользователя с именем твоего аккаунта Mac. Создадим его:

bash
# Подключаемся как суперпользователь postgres
sudo -u postgres psql

# Создаем роль с именем твоего пользователя Mac
CREATE ROLE $USER WITH LOGIN SUPERUSER;

# Выходим
\q
Поделиться:
Сохранить гайд? В закладки браузера