Я запускаю postgres 9.1 / ruby 1.9.2 / rails 3.1.0 на maxbook air для локального разработчика. В течение нескольких месяцев все шло гладко (хотя я впервые занимаюсь разработкой для Mac).

Это MacBook Air с прошлого года, и сегодня я получил сообщение об обновлении программного обеспечения Mac OSX, как и несколько раз раньше, и моя система загрузила около 450 Мб обновлений и перезапустилась. Теперь говорится, что это на OSX 10.7.3.

Дело в том, что postgres перестал работать, когда я запускаю свой тонкий сервер (зеркальный геройский кедр) как обычно, а затем просматриваю свое приложение rails и получаю:

PG::Error

could not connect to server: Permission denied
    Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

Что случилось? После просмотра нескольких вопросов я все еще в замешательстве, но вот дополнительная информация:

  • Запуск psql из командной строки выдает ту же ошибку
  • Я могу запустить pgadmin 3 и подключиться через него и запустить SQL без проблем
  • Запуск которого psql показывает версию как /usr /bin /psql
  • Я создал пользователя PostgreSQL, когда получил Mac (он всегда был на льве). Я понятия не имею, почему, почти наверняка я следовал учебному пособию, которое я забыл сохранить в своих заметках. Дело в том, что я знаю, что есть и пользователь _postgres. Я знаю, что это чепуха, но кроме примечания о паролях, у меня нет никакой дополнительной информации о том, как я настроил postgres - хотя очевидное следствие - я не использовал пользователя _postgres.

У кого-нибудь есть предложения или информация о том, что могло измениться / что я могу попробовать отладить и исправить? Благодарю.

Изменить: Игра на основе этого вопроса и ответа: https://stackoverflow.com/questions/7975414/check-status-of-postgresql-server-mac-os-x, см. Эту строку команд:

$ sudo su postgreSQL
bash-3.2$ /Library/PostgreSQL/9.1/bin/pg_ctl start -D /Library/PostgreSQL/9.1/data
pg_ctl: another server might be running; trying to start server anyway
server starting
bash-3.2$ 2012-04-08 19:03:39 GMT FATAL:  lock file "postmaster.pid" already exists
2012-04-08 19:03:39 GMT HINT:  Is another postmaster (PID 68) running in data directory "/Library/PostgreSQL/9.1/data"?

bash-3.2$ exit

1 ответ1

5

Если машина выключается без прохождения реального процесса выключения, PostgreSQL откажется запускаться при следующей загрузке. Это связано с тем, что предыдущий PID-файл все еще существует, а PostgreSQL считает, что он уже запущен. Вот что говорит вам сообщение об ошибке в вашем редакторе.

Вам нужно удалить файл postmaster.pid из каталога PostgreSQL. Согласно сообщению об ошибке, полный путь к файлу PID: /Library/PostgreSQL/9.1/data/postmaster.pid . Удалите этот файл, и PostgreSQL запустится без проблем.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .