Установка PostgreSQL на macOS
PostgreSQL на macOS можно установить через Homebrew для локального окружения или тестового контура перед миграцией проекта с MySQL на PostgreSQL.
Установка на macOS
Перед установкой проверьте, что Homebrew установлен и доступен в текущем терминале.
-
Установите PostgreSQL, например, 16 версии:
brew install postgresql@16Homebrew создаст кластер базы данных с кодировкой UTF-8 в каталоге
$HOMEBREW_PREFIX/var/postgresql@16. -
Добавьте команды PostgreSQL в
PATHдля текущей сессии терминала:export PATH="$(brew —prefix postgresql@16)/bin:$PATH"Чтобы команды
psql,createuserиcreatedbбыли доступны после перезапуска терминала, добавьте эту строку в профиль вашей оболочки. -
Запустите сервис:
brew services start postgresql@16Команда запустит сервис и зарегистрирует его для автоматического запуска при входе пользователя в систему.
-
Проверьте, что сервис запущен:
brew services list
Конфигурация PostgreSQL
В примерах используется пользователь www-data, база данных www-data и пароль passwd. Замените эти значения на параметры вашего проекта.
-
Добавьте пользователя.
createuser www-data -
Добавьте базу данных.
createdb www-data —owner www-data —encoding=UTF8 -
Разрешите пользователю создавать объекты в схеме
public.psql -d www-data -c 'GRANT CREATE ON SCHEMA public TO "www-data";' -
Добавьте расширение
pgcrypto.psql -d www-data -c 'CREATE EXTENSION IF NOT EXISTS pgcrypto;' -
Задайте пароль.
psql postgres -c 'ALTER USER "www-data" WITH PASSWORD '\''passwd'\'';' -
Проверьте подключение к базе данных.
psql —username www-data —dbname www-data —host localhost -
Если при соединении из PHP возникла ошибка
Ident authentication error..., разрешите аутентификацию по паролю в файлеpg_hba.conf. Чтобы найти файл, выполните:psql postgres -c 'SHOW hba_file;'В найденном файле замените метод аутентификации для локальных подключений на
password.# IPv4 local connections: host all all 127.0.0.1/32 password # IPv6 local connections: host all all ::1/128 passwordПосле изменения конфигурации перезапустите сервис.
brew services restart postgresql@16