web-dev-qa-db-ja.com

Mac OSXでPostgres DBが起動しない:エラーメッセージ:Unixドメインソケットでの接続

Postgresqlをインストールしてから、RailsアプリをローカルMac OSX Mountain Lionで実行し、データベースなどを作成しました。このエラー:

enter image description here

簡単なグーグルが this 投稿を示しました。より多くのブラウジングは、ある種のpostmaster.pidファイルが存在する可能性があり、それがこの根本原因である可能性があることを指摘しました。私がそれを削除すれば大丈夫だろう。

しかし、コンピューター上のものを削除する前に、Imがより多くの問題を引き起こさない体系的な方法でデバッグしていることを確認したかったのです。

ファイルを削除する前にそれを読んだどこかで、このコマンドを実行する必要があります。

  ps auxw | grep post

結果が得られない場合は、ファイルを削除しても問題ありません。そうでない場合。さて、私はそのコマンドのこの結果を得ました:

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

ですから、もちろん今は完全に混乱しています。

だから私は何をすべきですか?

Postgresサーバーエラーログの一部を次に示します。

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

Postgresqlはまだ実行されておらず、同じエラーが引き続き発生し、何も変更されていません。 SOをチェックせずに物事を削除するにはあまりにも鶏です。

あなたの専門家の何人かが初心者を導くことができますか?.

ありがとう

59
banditKing

現在、データベースが動作しています。

私が行ったステップは次のとおりです。

  1. コンピューターを再起動しました
  2. ターミナルを開いてcd /を実行しました
  3. それからls -laをしました
  4. MackintoshHD/usr/local/var/postgresに到達できることを確認した
  5. その後、ls -la
  6. ここでpostmaster.pidファイルを見ました
  7. ファイルをデスクトップにコピーしたこのコマンドcp postmaster.pid ~/Desktopを実行しました。ファイルを削除する場合は、これを実行します。何かが間違っている場合、私はそれを戻すことができます
  8. 次に、このコマンドを実行して、postgresディレクトリからファイルを削除しましたrm -r postmaster.pid
  9. 私はpgadmin3のGUIに行き、それを起動しました。そして出来上がり:)

助けてくれた@Craig Ringerに感謝

20
banditKing

今日、Mac Sierraでも同じ問題が発生しました。 Mac Sierraでは、postmaster.pidの中に/Users/<user_name>/Library/Application Support/Postgres/var-9.6があります。 postmaster.pidを削除すると、問題は修正されます。

142
Reboot

これは、データベースが正しくシャットダウンされなかった場合に発生する可能性があります。

修正するには、postmaster.pidファイルを削除します。

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

または、バックアップします。

 mv /usr/local/var/postgres/postmaster.pid /usr/local/var/postgres/postmaster.pid.backup
32
sqren

私はPostgres.appを使用していますが、以下が私のために働きました:

以下の端末にコマンドを入力し、「ジャスティン」を使用せずに事前にPostgresフォルダーを見つけました。

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

$pg_ctl restart -m immediate

ジャスティンが彼の投稿で説明しているように、この後の出力は次のとおりです。

サーバーがシャットダウンするのを待っている…………………………………………………………失敗したpg_ctl:サーバーはシャットダウンしません

コマンドを再度入力した後:

$pg_ctl restart -m immediate

それはうまくいき、私はこのメッセージを受け取りました:

pg_ctl:古いサーバープロセス(PID:373)は、とにかくサーバーを起動しなくなったようですLOGを起動しているサーバー:データベースシステムが中断されました。最後に2015-07-28 18:15:26に確認されたPDTログ:データベースシステムが適切にシャットダウンされませんでした。自動リカバリが進行中LOG:0/4F0F7A8で長さゼロのレコードLOG:REDOは不要LOG:データベースシステムは接続を受け入れる準備ができているLOG:autovacuumランチャーが開始された

ソース

4
Andrew Southard