PostgresDBがMacOSXで起動しない:エラーによると:Unixドメインソケットでの接続[クローズ]


81

Postgresqlをインストールしてから、ローカルのMac OSX Mountain Lionで多数のrailsアプリを実行し、データベースなどを作成しました。しばらくしてpgAdminIIIを起動し、データベースサーバーを起動しようとすると、次のエラーが発生しました。

ここに画像の説明を入力してください

簡単なグーグルがこの投稿を示しました。より多くのブラウジングは、これの根本的な原因であるかもしれないある種の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をチェックせずに物事を削除するにはあまりにも鶏です。

あなたの専門家の何人かは初心者を導いてくれませんか。

ありがとう


まず、私は専門家ではありません。そうは言っても、データベースが適切にシャットダウンされていないようです。pidファイルを削除して、データベースを起動しようとします。
fbynite 2013

ええ、それは私がやりたいことですが、これが行われている間にpidが実行されている場合、これがデータベースに永続的な損傷を引き起こす可能性があることをどこかで読みました。それが何であったかわからない
banditKing 2013

@banditKingを削除する必要はありませんpostmaster.pid。それが無効(古い)である場合、サーバーは起動時にそれを削除します。これはデータ保護にとって重要です。EnterpriseDBインストーラー、homebrew、Postgres.appを介して、最初にPostgreSQLをコンピューターインストールした方法を説明してください。PostgreSQLのバージョンについても言及してください。最後に、Pgadmin-IIIの接続オプションに明示的に「localhost」を追加した場合、それは機能しますか?もしそうなら、あなたはAppleがしばらく前に下した本当に悪いパッケージングの決定に噛まれています...
Craig Ringer 2013

@CraigRinger明確にしてくれてありがとう。どうやってインストールしたのか覚えていません。少し前のことです。何か私にできることはありますか?または、そこにあるデータはテストデータだけなので、最悪のシナリオでは、アンインストールして再インストールできます。これを正しく行う方法に関する優れたブログ/チュートリアルはありますか?
banditKing 2013

1
@banditKing再起動してみましたか?インストール方法は、wiki.postgresql.org / wiki / Installers / Mac_OS_Xから確認できます。おそらくHomebrewを使用したようです。PostgreSQLサーバが誤って削除に失敗した場合postmaster.pid、あなたはでき一切存在しないことを確認した後、それを削除postgres実行中のプロセスは、それだけだ重要なあなたは何のPostgreSQLのプロセスが実際には存在しないことを確認していること。postmaster.pidただし、サーバーが古いものを削除できないことは、私にはバグのように思えます。
クレイグリンガー2013

回答:


192

今日、MacSierraでも同じ問題が発生しました。Mac Sierraでは、postmaster.pid内部を見つけることができます/Users/<user_name>/Library/Application Support/Postgres/var-9.6。削除postmaster.pidして問題を修正します。


19
postmaster.pidこの場所で削除され、問題が修正されました。ありがとう!
JLF 2017年

1
これはpostmaster.pid、Postgres.appを使用しているのでファイルを見つける必要がある場所でもあります
Jarsen 2017年

3
Postgres.appの場合も同じです。ここにある可能性があります/Users/<user>/Library/Application\ Support/Postgres/var-10/postmaster.pid
Simon Franzen 2018

1
v10を実行しているPostgres.appも使用しています。Postgresの実行中にMacで予期しないシャットダウンが発生した場合は、コンピューターを再起動するときにpostmaster.pidファイルに移動して削除する必要があります。それがアプリの予想される動作であるかどうか誰かが知っていますか?意図的にすると奇妙なデザインのようです。
アレクサンダー

このファイルを削除する前に、プロセスがスピンダウンされていることを確認してください。あなたは実行することができcat postmaster.pidますが、PIDは、アクティビティモニタのようなもので実行して表示されていないことを参照して覗き見したディレクトリに。Postgres UIはこれについて警告しますが、人々が意地悪になる前に、そして自分自身をチェックする方法をここに置くべきだと思いました。またpostgres、アクティビティモニターで検索して関連するものをすべて強制終了するか、システムを再起動してからファイルを削除するだけで十分です。これを行わないと、データベースが破損する可能性があります
🔥

42

これは、データベースが正しくシャットダウンされなかった場合に発生する可能性があります。これを修正するには、postmaster.pidファイルを削除するだけです。場所はOSによって異なります。

マックOS:

 rm /Users/<user_name>/Library/Application\ Support/Postgres/var-9.6/postmaster.pid

またはPostgres.appを使用する:

 rm /Users/<user>/Library/Application\ Support/Postgres/var-10/postmaster.pid

Linux:

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

2
おかげで、このソリューションは機能します!削除postmaster.pidして実行した後postgres -D /usr/local/var/postgres、エラーの原因について私に気づきました:「データベースシステムが適切にシャットダウンされていませんでした。自動回復が進行中です」
Hoang Le

これで私の問題は解決しました
FabriceYopa18年

これは機能します。私の場合、ハードリブートのためにpidファイルが削除されなかったため、バックアップする必要がありました。
ジョージ

21

データベースが機能しています。

これが私が取ったステップです:

  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. 私はpgadmin3GUIに行き、それを起動しました。そしてVoilaそれは働いた:)

@CraigRingerの助けに感謝します


6
私は/ usr / local / var / postgresではなく、/ Users / [myhome] / Library / Application Support / Postgres / var-9.5 /にありました-最後のディレクトリはバージョンによって異なり、postmaster.pidを削除し、魅力のように機能しました、ありがとう
Radek 2017

4

私はPostgres.appを使用していますが、以下が機能しました。

「justin」を使用せずに、事前にPostgresフォルダーを見つけて、以下のターミナルにコマンドを入力しました。

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

$pg_ctl restart -m immediate

Justinが彼の投稿で説明しているように、この後の出力は次のとおりです。

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

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

$pg_ctl restart -m immediate

それは機能し、私はこのメッセージを受け取りました:

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

ソース

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.