Установка PostgreSQL на macOS
PostgreSQL на macOS можно установить через Homebrew для локального окружения или тестового контура перед миграцией проекта с MySQL на PostgreSQL.
Установка на macOS
Перед установкой проверьте, что Homebrew установлен и доступен в текущем терминале.
- Установите PostgreSQL, например, 16 версии:
bash prompt="$"
$ brew install postgresql@16
Homebrew создаст кластер базы данных с кодировкой UTF-8 в каталоге $HOMEBREW_PREFIX/var/postgresql@16.
- Добавьте команды PostgreSQL в
PATHдля текущей сессии терминала:
bash prompt="$"
$ export PATH="$(brew --prefix postgresql@16)/bin:$PATH"
Чтобы команды psql, createuser и createdb были доступны после перезапуска терминала, добавьте эту строку в профиль вашей оболочки.
- Запустите сервис:
bash prompt="$"
$ brew services start postgresql@16
Команда запустит сервис и зарегистрирует его для автоматического запуска при входе пользователя в систему.
- Проверьте, что сервис запущен:
bash prompt="$"
$ brew services list
Конфигурация PostgreSQL
В примерах используется пользователь www-data, база данных www-data и пароль passwd. Замените эти значения на параметры вашего проекта.
- Добавьте пользователя.
bash prompt="$"
$ createuser www-data
- Добавьте базу данных.
bash prompt="$"
$ createdb www-data --owner www-data --encoding=UTF8
- Разрешите пользователю создавать объекты в схеме
public.
bash prompt="$"
$ psql -d www-data -c 'GRANT CREATE ON SCHEMA public TO "www-data";'
- Добавьте расширение
pgcrypto.
bash prompt="$"
$ psql -d www-data -c 'CREATE EXTENSION IF NOT EXISTS pgcrypto;'
- Задайте пароль.
bash prompt="$"
$ psql postgres -c 'ALTER USER "www-data" WITH PASSWORD '\''passwd'\'';'
- Проверьте подключение к базе данных.
bash prompt="$"
$ psql --username www-data --dbname www-data --host localhost
- Если при соединении из 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