298

Macを再起動すると、恐ろしいPostgresエラーが発生しました。

psql: could not connect to server: No such file or directory
 Is the server running locally and accepting
 connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

これが起こった理由は、私のMacbookが無関係の問題のために完全にフリーズし、電源ボタンを使用してハードリブートを実行しなければならなかったためです。再起動後、このエラーのためにPostgresを起動できませんでした。

4

27 に答える 27

471

警告:実行中のプロセスが実際にないことを確認せずにpostmaster.pidを削除するpostgresと、データベースが完全に破損する可能性があります。(postmasterが終了した場合、PostgreSQLは自動的に削除する必要があります。)

解決策:これで問題が修正されました。このファイルを削除すると、すべてが機能しました。

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

-

これが、なぜこれを削除する必要があるのか​​を私が理解した方法です。

  1. 次のコマンドを使用して、実行中のPGプロセスがあるかどうかを確認しました。私にとっては何もありませんでした、私はPGサーバーを起動することさえできませんでした:

    ps auxw | grep post
    
  2. 上記のエラーメッセージに含まれていたファイル.s.PGSQL.5432を検索しました。次のコマンドを使用しました。

    sudo find / -name .s.PGSQL.5432 -ls
    

    コンピューター全体を検索しても何も表示されなかったため、ファイルは存在しませんでしたが、明らかにpsql「望んでいた」または「そこにあると思った」のです。

  3. サーバーログを確認したところ、次のエラーが発生しました。

    cat /usr/local/var/postgres/server.log
    

    サーバーログの最後に、次のエラーが表示されます。

    FATAL:  pre-existing shared memory block (key 5432001, ID 65538) is still in use
    HINT:  If you're sure there are no old server processes still running, remove the shared memory block or just delete the file "postmaster.pid".
    
  4. エラーメッセージのアドバイスに従って、server.logと同じディレクトリにあるpostmaster.pidファイルを削除しました。これで問題が解決し、再起動できました。

そのため、私のMacbookがフリーズしてハードリブートされたため、Postgresはリブート後もプロセスがまだ実行中であると考えていたようです。このファイルの削除は解決されました。これが他の人に役立つことを願っています!多くの人が同様の問題を抱えていますが、ほとんどの答えはファイルのパーミッションに関係していましたが、私の場合は状況が異なりました。

于 2012-11-26T21:09:53.373 に答える
226

上記のどれも私のために働いていませんでした。次の方法でPostgresを再インストールする必要がありました:

  • brewでpostgresqlをアンインストールします:brew uninstall postgresql

  • brew doctor(ここにあるものは何でも修正してください)

  • brew cleanup

  • すべてのPostgresフォルダを削除します:

  • rm -r /usr/local/var/postgres

  • rm -r ~/Library/Application\ Support/Postgres

  • brewでpostgresqlを再インストールします:brew install postgresql

  • サーバーを起動します:brew services start postgresql

  • これで、データベースを作成する必要があります...(createdb

于 2017-10-27T09:30:34.320 に答える
98

macOSを使用していて、homebrew経由でpostgresをインストールしている場合は、で再起動してみてください

brew services restart postgresql

Ubuntuを使用している場合は、これらのコマンドのいずれかを使用してUbuntuを再起動できます

sudo service postgresql restart

sudo /etc/init.d/postgresql restart
于 2015-06-15T09:12:50.037 に答える
46

おそらくこれは無関係ですが、;postgresを使用してメジャーバージョンにアップグレードすると、同様のエラーが表示されます。brew使用brew info postgresqlすることはこれを助けました:

To migrate existing data from a previous major version of PostgreSQL run:
brew postgresql-upgrade-database
于 2018-07-31T10:52:22.530 に答える
29

これが私のやり方です:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
rm /usr/local/var/postgres/postmaster.pid
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
于 2019-09-17T12:16:30.980 に答える
13

次のコマンドは私を助けてくれました。問題はPostgreSQLデータバージョンにありました。アップグレードすると、問題なく動作し始めました。

brew upgrade postgresql
brew postgresql-upgrade-database
brew services restart postgresql
于 2021-01-27T04:09:32.107 に答える
11

postmaster.pidなくなって再起動できない場合は、次のようにします。

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

ここで最初に説明したように

于 2017-12-05T01:00:55.693 に答える
9

私にとっての解決策は、単にコンピューターを再起動することでした。私は最初にBrewサービスで再起動を試みましたが、それが機能しなかった場合、再起動は、より複雑なソリューションのいくつかを検討する前に試す次善の選択肢のように思われました。その後、すべてが正常に機能しました。

于 2017-05-08T04:47:35.783 に答える
9

これが発生する可能性がある別のクラスの理由は、Postgresバージョンの更新によるものです。

postgresログを見ると、これが問題であることが確認できます。

tail -n 10000 /usr/local/var/log/postgres.log

次のようなエントリが表示されます。

DETAIL:  The data directory was initialized by PostgreSQL version 12, which is not compatible with this version 13.0.

この場合(Macを使用していて、を使用していると仮定してbrew)、次のコマンドを実行します。

brew postgresql-upgrade-database

(奇妙なことに、実行1で失敗し、実行2で機能したので、あきらめる前に2回試してください)

于 2020-11-13T09:53:39.183 に答える
8

Hello world :)
私にとって最良の、しかし奇妙な方法は、次のことをすることでした。

1)postgres93.appまたは他のバージョンをダウンロードします。このアプリを/Applications/フォルダーに追加します。

2).bash_profileファイル(私のホームディレクトリにあり ます)に行(コマンド)を追加します。

export PATH = / Applications / Postgres93.app / Contents / MacOS / bin /:$ PATH
psqlから へのパスPostgres93.appです。行(コマンド)は、コンソールが起動するたびに実行されます。

3)Postgres93.appフォルダから起動し/Applications/ます。ローカルサーバーを起動します(ポートは「5432」、ホストは「localhost」)。

4)$ createuser -SRDP user_nameこの操作をすべて行った後、コマンドやその他のコマンドを実行して、それが機能することを確認できてうれしかったです。Postgres93.appシステムが起動するたびに実行することができます。

5)また、データベースをグラフィカルに表示したい場合は、をインストールする必要がありますPG Commander.app。postgresDBをきれいなデータテーブルとして見るのに良い方法です

もちろん、これはローカルサーバーにのみ役立ちます。この指示がこの問題に直面した他の人を助けるならば、私はうれしいです。

于 2014-02-01T20:38:22.647 に答える
7

この問題には多くの原因があり、したがって多くの答えがあります。私はそれらのそれぞれを経験しました。

1)ある種のクラッシュが発生した場合は、postgresが適切に処理していない可能性があるため、/ usr / local / var / postgres/postmaster.pidファイルを削除する必要があります。ただし、プロセスが実行されていないことを確認してください。

2)Craig Ringerは他の投稿で、AppleによるpostgreSQLのバンドルがpggemのインストールの問題につながることを指摘しています 。PATH環境変数の設定は解決策です。

3)別の解決策は、gemをアンインストールして再インストールすることです。醸造の更新も必要になる場合があります。

この投稿に出くわした場合、ソースの1つを特定できれば、時間を節約できます...

于 2014-03-11T08:53:50.070 に答える
5

私はここで同様の問題に直面していました。私はこの問題を以下のように解決しました。

実際、postgresプロセスは停止しています。postgresのステータスを確認するには、次のコマンドを実行します。

sudo /etc/init.d/postgres status

プロセスが停止していると表示されます`プロセスを開始するだけです

sudo /etc/init.d/postgres start
于 2015-05-13T10:05:39.840 に答える
4

これは、Mac(High Sierra)がフリーズした後に発生し、手動で再起動する必要がありました(電源ボタンを押したままにします)。それを修正するために私がしなければならなかったのは、クリーンな再起動を行うことだけでした。

于 2017-10-20T15:45:13.087 に答える
4

についても同じ問題に直面しましたpsql (PostgreSQL) 9.6.11

私のために働いたもの-

postmaster.pidを削除します- rm /usr/local/var/postgresql@9.6/postmaster.pid

postgresを再起動します-brew services restart postgresql@9.6

postmaster.pid存在しないか、上記のプロセスが機能しない場合は、-を実行します。

sudo chmod 700 /usr/local/var/postgresql@9.6

于 2020-10-05T07:00:05.023 に答える
3

私の問題は、Gas Mask(Mac用のhostsファイルマネージャー)を使用していて、使用していたhostsファイルにlocalhostのエントリがなかったことです。

追加した:

127.0.0.1 localhost

そして、それは私の問題を解決しました。

于 2015-07-22T18:00:48.390 に答える
3

理由は完全にはわかりませんが、Postgresのインストールが少し失敗し、一部のファイルが削除されたため、OPが表示されているというエラーが発生しました。

のようなコマンドを実行して適切なメッセージを表示できるにもかかわらずbrew service retart postgres、このエラーは解決しませんでした。

postgresのドキュメントを調べたところ、ファイル/usr/local/var/postgresが完全に空であることがわかりました。だから私は以下を実行しました:

initdb /usr/local/var/postgres

そのコマンドでいくつかの構成が行われたようです。

それからそれは私にこれを実行するように頼んだ:

postgres -D /usr/local/var/postgres

そしてそれは私にpostmaster.pidファイルがすでに存在することを教えてくれました。

brewが実行したばかりの構成を取得できるかどうかを知る必要があったので、テストしました。

ls /usr/local/var/postgres

それは私にpostmaster.pidファイルを示しました。その後brew services stop postgresql、実行すると、postmaster.pidファイルが消えました。それから私はそうしましたbrew services start postgresql、そしてVIOLA、ファイルは再び現れました。

次に、先に進んでアプリを実行しましたが、実際にはサーバーが見つかりましたが、データベースがなくなったようです。

それらがまったくなくなっていない可能性があることは知っていますが、私が行った新しい初期化によって新しいdata_areaが作成された可能性があり、古いものはポイントされていません。それがどこにあるかを調べて、それを元に戻すか、データベースを再度作成する必要があります。

お役に立てれば!postgresのドキュメントを読むことは私を大いに助けました。「これを貼り付けてください」のような答えを読むのは嫌いです。何が起こっているのか、そしてその理由がわからないからです。

于 2018-06-04T15:24:25.563 に答える
3

私も同じ問題を抱えていました。ほとんどの場合、問題はファイルが残っているという事実です

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

これはほとんどの人に有効ですが、私の場合は異なります-この問題を過去3時間グーグルで調べ、brewを介してOSXでpostresqlをアンインストールし、データベースをパージしましたが、何も機能しませんでした。

最後に、brewに問題があり、何かをインストールしようとすると、次のように表示されることに気付きました。

Error: Permission denied @ rb_sysopen - /private/tmp/github_api_....

またはインストールの最後にそれのようなもの。

私は単にやっただけsudo chmod -R 777 /private/tmpで、ついに機能します!

これは他の誰かのための解決策かもしれないので、私はこれを書き留めています

于 2018-12-27T11:13:37.817 に答える
3

同じ問題が発生しましたが、バージョン11から13.2にアップグレードした後のバージョンに互換性がないことが原因でした。

エラーログの確認:

/usr/local/var/log/postgres.log

見せてくれた:

DETAIL:  The data directory was initialized by PostgreSQL version 11, which is not compatible with this version 13.2.

修正するには、次のコマンドを実行しました。

brew postgresql-upgrade-database

そして、brewでpostresqlを開始しました:

brew services start postgresql
于 2021-04-18T08:17:58.163 に答える
2

このエラーの原因はたくさんあるので、最初にログファイルを見つけて手がかりがないか確認してください。それは/usr/local/var/log/postgres.log、または/usr/local/var/postgres/server.logおそらく他の場所にある可能性があります。Homebrewでインストールした場合は、で場所を見つけることができます~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

于 2018-01-26T16:54:59.650 に答える
1

/var/log/ catに移動して実行しpostgres.log ます。ここで、postgresが失敗した理由を確認できます。スマートシャットダウンの場合は、おそらくお使いのicu4cバージョン(Unicode用のC ++ライブラリ)が適切ではなく、にリンクされていpostgresます。したがって、次のコマンドを実行します。

brew upgrade brew cleanup これはうまくいくはずです;)

于 2019-06-18T10:06:36.387 に答える
0

この問題を解決するには、この投稿を数回検索する必要がありました。別の修正があります。これは、実行中の他のプログラムの同様の問題にも適用されます。

次の2つのコマンドを使用できることを発見しました。

$ top

これにより、現在実行中のすべてのアクションとそのpid番号が表示されます。postgresと関連するpidを見つけたとき

$ kill pid_number

于 2014-07-18T20:20:14.353 に答える
0

マシン()を更新するのと同じ問題がubuntu発生し、以下のエラーが発生しました。

サーバーに接続できませんでした:そのようなファイルまたはディレクトリはありませんサーバーはローカルで実行されており、Unixドメインソケット "/var/run/postgresql/.s.PGSQL.5432"で接続を受け入れていますか?

更新プロセスを完了した後、システムを再起動するとエラーが発生しなくなりました。そして、以前と同じように魅力のように機能します。これは、pgが更新され、別のプロセスが開始されたときに発生したと思います。

于 2015-03-02T05:42:09.383 に答える
0

SUPER NEWBIE ALERT:私はWeb開発を学んでいるだけで、私がフォローしていた特定のチュートリアルでは、Postgresをインストールする必要があると述べましたが、実際にはそれも実行する必要があるとは述べていませんでした... Postgresアプリケーションを開くと、すべてが正常で、ダンディ。

于 2016-05-01T07:08:51.200 に答える
0

@Jagdish Barabariの答えは、私がこれを解決するために必要な手がかりを与えてくれました。1つだけが実行されている間に2つのバージョンのpostgresqlがインストールされていたことがわかりました。すべてのpostgresqlファイルを削除し、最新バージョンを再インストールすると、この問題が解決しました。

于 2016-05-11T17:20:16.603 に答える
0

LD_LIBRARY_PATHから/usr/ libを削除しましたが、機能しました。私はdockerfilepostgres:alpineで作業していました。

于 2019-04-04T16:19:04.167 に答える
0

同様のエラーが発生したため、ここにソリューションを投入します

これはすべてコマンドラインから実行されます(sudoコードはまったくありません)

  1. PostgreSQLがインストールされていることを確認しましたpsql -V(これは大文字の「V」です)
  2. サーバーに接続しようとしました:psql postgres

これは私がこの質問のエラーを経験した場所です

考えられる修正について調査した後、明らかにPostgreSQLをインストールしましたが、デフォルトのサーバーを配置していませんでした。

私がしなければならなかったのは、カスタムデータディレクトリを作成することでした

私の知る限り、カスタムデータディレクトリを作成することは、デフォルトのサーバーを配置することと同じです。

これは新しいマシン(アップルm1チップを使用したmacBook pro 2021)なので、可能な限り最も簡単なソリューションを見つけたかったのですが、このカスタムデータディレクトリはまさにそれだと思います。この問題を修正するための残りの手順は次のとおりです。

  1. ホームディレクトリから、空のディレクトリを作成しましたmkdir myData
  2. ホームディレクトリから、サーバーを初期化initdb myDataしました:(大量のファイルをmyDataディレクトリにスローします)
  3. pg_ctl -D myData -l logfile start(サーバーを起動します)
  4. psql postgres(サーバーに接続します)

したがって、PostgreSQL、データベース、およびSQL全般にかなり慣れていない人として、次の点に注意してください。

  • を使用して、サーバーへの接続を「終了」することができます\q(サーバーに接続しているときに、「help」と入力することもできます)。
  • サーバーを「停止」することも可能です。pg_ctl -D myData stop

この時点で、PostgreSQLがインストールされており、起動および停止できるサーバーがあり、そのサーバーに接続/切断できることを確認できました。

これのいずれかが「悪い」場合は、私に知らせてください。

于 2021-09-25T17:20:23.677 に答える
0

MacOSMontereyでPostgreSQLデータベースサーバーを起動しようとして接続するときにも同じ懸念がありました。

以下のコマンドを実行してPostgreSQLデータベースサーバーを再起動すると、次のようになります。

brew services restart PostgreSQL

再起動しますが、以下のコマンドを使用してPostgreSQLデータベースサーバーのステータスを確認しようとすると、エラーが発生します。

Name       Status     User           File
mysql      started    promisepreston ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
nginx      started    promisepreston ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
postgresql error  256 root           ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

これが私のために働いたものです

まず、以下のコマンドを使用して、PostgreSQLデータベースサーバーのログファイルでエラーの原因を確認しました。

cat /usr/local/var/log/postgres.log

また

nano /usr/local/var/log/postgres.log 

ログには次のエラーが表示されました。

"root" execution of the PostgreSQL server is not permitted.
The server must be started under an unprivileged user ID to prevent
possible system security compromise.  See the documentation for
more information on how to properly start the server.
2022-01-25 19:01:06.051 WAT [29053] FATAL:  database files are incompatible with server
2022-01-25 19:01:06.051 WAT [29053] DETAIL:  The data directory was initialized by PostgreSQL version 13, which is not compatible with this version 14.1.

ルート実行エラーの場合brew services、次のコマンドを実行して、sudoコマンドプレフィックスを使用して実行したときに混乱したファイルのアクセス許可を修正する必要がありました。MacOSユーザー名に置き換えyour-usernameます(私の場合、私のユーザー名はpromisepreston

# Stop postgresql
sudo brew services stop PostgreSQL

# In case service file is copied to ~/Library/LaunchAgents as well
brew services stop postgresql

# Fix permission of homebrew files
sudo chown -R your-username:admin $(brew --prefix)/*

データベースファイルはサーバーと互換性がないため、次のコマンドを実行して、バージョン13を使用して作成された既存のPostgreSQLデータファイルをコンピューター上の最新のPostgreSQLバージョンである14.1にアップグレードする必要がありました。

brew postgresql-upgrade-database

その後、PostgreSQLデータベースサーバーを再起動しました。

brew services restart PostgreSQL

次に、以下のコマンドを使用してステータスを確認します。

brew services list

次に、すべてが正常に機能していることを示す以下の出力を取得しました。

Name          Status  User           File
mysql         started promisepreston ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
nginx         started promisepreston ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
postgresql    started promisepreston ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

それで全部です。

参考資料Brew Postgresqlは起動しますが、プロセスが実行されていません

于 2022-01-25T19:27:14.137 に答える