Перейти к содержанию

Установка PostgreSQL на macOS

PostgreSQL на macOS можно установить через Homebrew для локального окружения или тестового контура перед миграцией проекта с MySQL на PostgreSQL.

Установка на macOS

Перед установкой проверьте, что Homebrew установлен и доступен в текущем терминале.

  1. Установите PostgreSQL, например, 16 версии:

bash prompt="$" $ brew install postgresql@16

Homebrew создаст кластер базы данных с кодировкой UTF-8 в каталоге $HOMEBREW_PREFIX/var/postgresql@16.

  1. Добавьте команды PostgreSQL в PATH для текущей сессии терминала:

bash prompt="$" $ export PATH="$(brew --prefix postgresql@16)/bin:$PATH"

Чтобы команды psql, createuser и createdb были доступны после перезапуска терминала, добавьте эту строку в профиль вашей оболочки.

  1. Запустите сервис:

bash prompt="$" $ brew services start postgresql@16

Команда запустит сервис и зарегистрирует его для автоматического запуска при входе пользователя в систему.

  1. Проверьте, что сервис запущен:

bash prompt="$" $ brew services list

Конфигурация PostgreSQL

В примерах используется пользователь www-data, база данных www-data и пароль passwd. Замените эти значения на параметры вашего проекта.

  1. Добавьте пользователя.

bash prompt="$" $ createuser www-data

  1. Добавьте базу данных.

bash prompt="$" $ createdb www-data --owner www-data --encoding=UTF8

  1. Разрешите пользователю создавать объекты в схеме public.

bash prompt="$" $ psql -d www-data -c 'GRANT CREATE ON SCHEMA public TO "www-data";'

  1. Добавьте расширение pgcrypto.

bash prompt="$" $ psql -d www-data -c 'CREATE EXTENSION IF NOT EXISTS pgcrypto;'

  1. Задайте пароль.

bash prompt="$" $ psql postgres -c 'ALTER USER "www-data" WITH PASSWORD '\''passwd'\'';'

  1. Проверьте подключение к базе данных.

bash prompt="$" $ psql --username www-data --dbname www-data --host localhost

  1. Если при соединении из PHP возникла ошибка Ident authentication error..., разрешите аутентификацию по паролю в файле pg_hba.conf. Чтобы найти файл, выполните:

```bash prompt="$" $ psql postgres -c 'SHOW hba_file;'

В найденном файле замените метод аутентификации для локальных подключений на `password`.

```text
# IPv4 local connections:
host    all             all             127.0.0.1/32            password
# IPv6 local connections:
host    all             all             ::1/128                 password

После изменения конфигурации перезапустите сервис.

bash prompt="$" $ brew services restart postgresql@16