[Заметки программиста] Настройка PostgreSQL в Mac OS X

Разработка: [Записки программиста] Настройка PostgreSQL в Mac OS XПродолжаю переезд рабочего окружения на Mac OS X и соответственно под Mac свои подводные камни настроек всяких, жизненно мне необходимых сервисов и утилит, и так как это заняло не один час на то, чтобы все понять осознать и настроить, я пишу этот материал для Вас, чтобы сэкономить Ваше драгоценное время. Сегодня будем настраивать PostgreSQL из homebrew, поскольку это самый быстрый способ настроить все что необходимо для разработчика.

Итак прежде всего нам понадобится homebrew (Установка Homebrew).

Открываем Terminal.app и запускаем команды:
brew update
brew install postgresql

К сожалению установка на этом не закончена, необходимо выполнить еще пару шагов.

Инициализируем БД:
initdb /usr/local/var/postgres

Добавляем сервис в автозагрузку:
cp /usr/local/Cellar/postgresql/ВЕРСИЯ POSTGRESQL(в моем случае 9.2.4)/homebrew.mxcl.postgresql.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

Запускаем PostgreSQL:
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start


Почти все, осталось лишь уточнить пару ньюансов.
1) При установке с помощью homebrew, PostgreSQL не создает системной учетной записи postgres, поэтому все действия над БД производятся в контексте пользователя, из под которого был запущен brew. Нам это не принипиально, поскольку это сервер для разработки, а если Вы настраиваете production сервер, то создайте системную запись postgres вручную.

2) После установки при попытке запустить psql из консоли он невнятно сругнется на отсутствие сокета. Лечится это добавлением в ~/.bash_profile одной строчки:
export PGHOST=localhost

Теперь перезапустите терминал. Команда psql должна заработать, как от нее ожидается…
Если у Вас остались какие-нибудь вопросы — пишите в комментариях

3 комментария

IlyaHarabet
Здравствуйте. При запуске PostgreSQL выдает сообщение — pg_ctl: another server might be running; trying to start server anyway server starting. Затем ввоже в консоль команду psql и появляется ошибка — psql: FATAL: database «ilyakharabet» does not exist. Что делать?
Satchitananda
Вам нужно просто создать базу данных ilyakharabet, прежде запустив postgresql командой psql -u postgres
Leshiy
ДОбрый день.
Вроде сделал все как написано, но когда ввожу команду
sudo -u postgres psql
запрашивает пароль, я ввожу пароль супер пользователя и мне выдает вот такое сообщение
psql: FATAL: password authentication failed for user «postgres»
в чем проблема?

Оставить комментарий