2013-07-23 1 views
24

Я установил Postgresql, а затем запустил кучу рельсовых приложений на своем локальном Mac OSX Mountain Lion и создал базы данных и т. Д. Сегодня через некоторое время, когда я запустил pgAdminIII и попытался запустить сервер базы данных я получил эту ошибку:Postgres DB не начинается с Mac OSX: ERROR говорит: подключения в соке домена Unix

enter image description here

быстрый Google показал this пост. Больше просмотров указывает на то, что вокруг может быть какой-то файл postmaster.pid, который может быть основной причиной этого. Если я удалю, все будет хорошо.

Однако, прежде чем я удалю вещи на своем компьютере, я хотел убедиться, что Im отлаживает это систематически, что не приведет к большим проблемам.

Где-то я читал, что перед удалением этого файла, мне нужно запустить эту команду:

ps auxw | grep post 

Если я не получаю никаких результатов, то его OK, чтобы удалить файл. Иначе нет. Ну, я получил этот результат от этой команды:

AM    476 0.0 0.0 2423356 184 s000 R+ 9:28pm 0:00.00 grep post 

Так что теперь, конечно, Im напуганно.

Итак, что мне делать?

Вот часть моей Postgres журнал ошибок сервера:

FATAL: lock file "postmaster.pid" already exists 
HINT: Is another postmaster (PID 171) running in data directory "/usr/local/var/postgres"? 

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

Могли бы некоторые из вас, конечно, руководствоваться noob.

спасибо

+0

Во-первых, я не эксперт. С учетом сказанного это звучит так: ваша база данных не была выключена должным образом. Я бы удалил файл pid и попытался запустить базу данных. – fbynite

+0

Да, это то, что я хочу сделать, но где-то я читал, что это может нанести постоянный ущерб базе данных, если pid работает, пока это сделано. Не уверен, что это все о – banditKing

+0

@banditKing Вам не нужно удалять 'postmaster.pid'. Сервер удаляет его при запуске, если он недействителен (устарел), и это важно для защиты данных. Пожалуйста, объясните, как вы установили PostgreSQL на свой компьютер ** для начала - через установщик EnterpriseDB, homebrew, Postgres.app, что? Также укажите версию PostgreSQL. Наконец, если вы явно добавляете «localhost» в параметры подключения в Pgadmin-III, это работает? Если это так, вас укусит очень плохое решение для упаковки Apple, сделанное некоторое время назад ... –

ответ

13

У меня сейчас работает база данных.

Вот шаги, которые я взял:

  1. Я перезагрузил свой компьютер
  2. я открыл терминал и побежал cd /
  3. Тогда я сделал ls -la
  4. Обеспечено, что я мог добраться до MackintoshHD/usr/local/var/postgres
  5. Затем сделал ls -la
  6. Здесь я увидел почтмейстера. pid file
  7. Я выполнил эту команду cp postmaster.pid ~/Desktop, которая скопировала файл на мой рабочий стол. Мне нравится делать это, если я удаляю файлы. Если что-то делает неправильно, я могу положить его обратно
  8. Затем я запустил эту команду, чтобы удалить файл из Postgres каталога rm -r postmaster.pid
  9. Я пошел к моему pgadmin3 гую и обожженного его.и вуаля она работала :)

Благодаря @Craig Ringer за помощь

+1

Mine не было в/usr/local/var/postgres, но в/Users/[myhome]/Library/Application Support/Postgres/var-9.5/- последний каталог зависит от вашей версии, удалялся postmaster.pid и работал как шарм , спасибо – Radek

16

Это часто происходит, если база данных не была закрыта должным образом.

Удалить postmaster.pid файл:

rm /usr/local/var/postgres/postmaster.pid 

Или, обратно его:

mv /usr/local/var/postgres/postmaster.pid /usr/local/var/postgres/postmaster.pid.backup 
+1

Спасибо, это решение работает! После удаления 'postmaster.pid' и запуска' postgres -D/usr/local/var/postgres' он уведомляет меня об ошибке: «система базы данных не была должным образом отключена, автоматическое восстановление в процессе» –

55

У меня была та же проблема, сегодня на Mac Serria. В Mac Serria вы можете найти postmaster.pid внутри /Users/<user_name>/Library/Application Support/Postgres/var-9.6

+4

Удалено 'postmaster. pid' в этом месте, и проблема была исправлена. Благодаря! – JLF

+1

Это также где мне нужно найти файл 'postmaster.pid', так как я использую Postgres.app – Jarsen

-1

Я использую Postgres.app, и ниже работал для меня:

Я вошел команды в моем терминале ниже, местонахождение папки Postgres заранее, а не с помощью " джастин».

$declare -x PGDATA="/Users/justin/Library/Application Support/Postgres/var-9.4" 

$pg_ctl restart -m immediate 

Как Джастин объясняет в своей должности, выход после этого было:

waiting for server to shut down……………………………………………………… failed pg_ctl: server does not shut down

После повторного ввода команды:

$pg_ctl restart -m immediate 

Он работал, и я получил это сообщение:

pg_ctl: old server process (PID: 373) seems to be gone starting server anyway server starting LOG: database system was interrupted; last known up at 2015-07-28 18:15:26 PDT LOG: database system was not properly shut down; automatic recovery in progress LOG: record with zero length at 0/4F0F7A8 LOG: redo is not required LOG: database system is ready to accept connections LOG: autovacuum launcher started

Source

Смежные вопросы