PostgreSQLがMacで実行されていない


55

エラー全体は次のとおりです。

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

MacでHomebrewを使用してPostgresqlをセットアップするのは今回が2回目で、何が起こっているのかわかりません。以前は機能していました。ある時点で、混乱させるコマンドを入力したに違いありません。よく分かりません。これで、コマンドラインからSQLコマンドを入力するたびに、上記のメッセージが表示されます。サーバーが実行されているかどうかを確認するコマンドを実行しましたが、実行されていないようです。を使用してサーバーを起動しようとした場合

$ postgres -D / usr / local / pgsql / data

次のエラーが表示されます。

postgresはサーバー設定ファイル「/usr/local/pgsql/data/postgresql.conf」にアクセスできません:そのようなファイルまたはディレクトリはありません

Homebrewを使用してPostgresqlをアンインストールして再インストールしましたが、問題は解決しません。私はこれをどのように機能させるかについて完全に迷っています。任意の助けをいただければ幸いです。

回答:


51

この問題は、postmaster.pidファイルを残したクラッシュしたプロセスに起因する場合もあります。

$ brew services stop postgresql
$ rm /usr/local/var/postgres/postmaster.pid # adjust path accordingly to your install
$ brew services start postgresql

4
MacOSXでは、この答えが私を救った。コンピューターをハードリブートした後、OPと同じエラーが発生しました。brew services彼らはすべてが働いていたようにそれはようで作られたため、コマンドは役立ちませんでした。を削除するpostmaster.pidと、すべてが再び機能するようになります。ありがとう!
-vinhboy

1
これは私にも起こりました。Postgresが起動しなかった後、Mac OS Xのハードクラッシュが再起動を引き起こしました。brew services start / stop / restartが機能しないため、pidファイルを手動で削除する必要があります。
マティイス

もちろん、DockerコンテナでPostgresを実行することをお勧めします。開始が非常に簡単で、コンテナがシャットダウンされるとすべてがクリーンアップされます。ドッカーコンテナーでサードパーティのアプリを実行することは、最近では事実上行われていると思います。
demisx

43

答えはこちらです。

次のコマンドを実行して、サーバーを手動で起動します。

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

14

私は同じになっていた

Is the server running locally and accepting connections on Unix domain 
socket "/tmp/.s.PGSQL.5432"?

Homebrewのインストール/開始/停止/再起動のループが無効になりました...

最後に、brew postgresql-upgrade-database働いた。

私は10.4ではなく9.6を使用していたようで、最新のApp Storeの再起動によりすべてのデータベースサーバーが再起動されました...


これは私のために働いた
davideghz

それbrew postgresql-upgrade-databaseが欠けていたものです。それを指摘してくれてありがとう。
コリン

おかげで私のために働いた!
アーウィン・ルーイヤッカーズ

すべてのソリューションを試しました。しかし、これは私のために働いた唯一のものです。これが完全に修正された理由を誰かが説明できるかどうかを知ることは素晴らしいことです。
JohnnyQ

11

同じ問題を解決しました。使用前に適切実行するの忘れたからです。

以下のための純粋なインストール postgresql Mac OSで、プロセスは(使用する醸造コマンド):

brew install postgresql

次にpostgresql、ログイン時に自動的に実行する場合:

ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents

または、必要なときにいつでも実行したいだけです:

postgres -D /usr/local/var/postgres

ケースがより複雑な場合は、brew uninstall postgresqlこれらの手順をやり直しましょう。

それが役に立てば幸い!


1
更新:Homebrewがインストールされたpostgresの場合、brew services start postgresqlログイン時にpostgresを開始するのに好ましい方法です
ヘンリー

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

上記のエラーを取得し続けたが、上記の解決策はどれも役に立たなかった。最後に、次の解決策がMac OS Xでの私の問題を解決しました

brewを使用してpostgresをインストールする

brew install postgres

醸造サービスをインストールする

brew tap homebrew/services

postgresをバックグラウンドサービスとして開始するには

brew services start postgresql

postgresを手動で停止するには

brew services stop postgresql

醸造サービスを使用してPostgresを再起動することもできます

brew services restart postgresql

2

これは、postgresサーバーが実行されていないときに発生します。MACでHomebrewを使用してPostgresを適切にインストールする手順:

  1. brew install postgres

  2. initdb /Users/<username>/db -E utf8 [これにより、指定されたディレクトリをデータベースディレクトリとして使用するようにpostgresが初期化されます。通常、データベースストレージにユーザーディレクトリを使用することはお勧めしません。sudoersファイルを編集してinitdbおよび同様のコマンドを追加し、/ usr / local / var / postgresでinitdbを実行します]

  3. pg_ctl -D /Users/<username>/db -l logfile start [ステップ2で成功すると、ステップ3を実行するように求められます。このコマンドは、サーバーを手動で起動します。]


2

それは私のために働いた。システムのバージョンに従ってpostgresqlディレクトリを変更します。

共通パス rm /usr/local/var/postgres/postmaster.pid

しかし、私のシステムパスのpostgresql@9.6のは rm /usr/local/var/postgresql@9.6/postmaster.pid

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


うん、それが機能するONEです!
PirateApp

1

/etc/postgresql/9.5/main/postgresql.confでコメントを外します

unix_socket_permissions = 0777

そして、postgresを再起動します。そして私にとってはうまくいきます。


1

最近、私は同様の問題を経験しました。別の問題と解決策があります。サーバーは2つの異なるポートで実行するように設定されていましたが、いくつかの方法でbashのpsqlコマンドがデフォルトのポート5432に接続しようとしましたが、私はpostgresの2バージョン(9.3および9.6)を実行していましたポート設定を実行しpsql -p <port> postgresます。解決策はポートを変更することです。


1

私は長い間探していましたが、これは最もきれいできれいな解決策でした:

最近、brew upgrade postgresを使用してPostgresを9.2から9.3にアップグレードしました。プロセスはスムーズで、pg_upgradeは非常に便利なツールです。

ただし、Postgresへの接続に必要な仕様を実行しようとすると、トラブルが発生しました。Postgresが確実に実行されていたにもかかわらず、突然次のようになりました。

サーバーに接続できませんでした:そのようなファイルまたはディレクトリはありません(PG :: ConnectionBad)サーバーはローカルで実行され、Unixドメインソケット "/var/pgsql_socket/.s.PGSQL.5432"で接続を受け入れていますか?問題は、新しいバージョンのPostgresが代わりに/tmp/.s.PGSQL.5432をリッスンすることでした。設定をいじってPostgresが以前のドメインソケットを使用するようにしたり、Railsに接続方法を明示的に指示したりすることもできましたが、これらのアプローチはどちらも私がする必要のない作業のように思えました。Railsにそのパスでpostgresに接続するように指示したことはありませんでした。

少し驚いたら、修正は簡単です。'pg' gemをインストールすると、インストールされているPostgresのバージョンが検出され、ドメインソケットパスが適切に設定されます。解決策は、gemを再インストールするのと同じくらい簡単です。 $ gem uninstall pg $ cd my-rails-app/ $ bundle install

http://daniel.fone.net.nz/blog/2014/12/01/fixing-connection-errors-after-upgrading-postgres/


1
リンクが機能しなくなった場合に価値を提供できるように、回答を編集してください。他の人が書いた資料を参照する方法で、これを正しく行う方法に関するガイダンスを見つけることができます。ありがとうございました。
ポールホワイト

0

コマンドを使用して更新する

  brew postgresql-upgrade-database

次のエラーコマンド「brew」が見つからないが、 次の コマンドでインストールできる場合:sudo apt install linuxbrew-wrapper

コマンドを使用してインストールします

 sudo apt install linuxbrew-wrapper

0

私にとっては、これは再起動後にも起こり、上記の解決策はどれもうまくいきませんでした。このようなサーバーログを確認した後:

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

私は気づきました:

    2019-11-06 11:04:31.797 CET [85029] FATAL:  data directory "/usr/local/var/postgres" has invalid permissions
2019-11-06 11:04:31.797 CET [85029] DETAIL:  Permissions should be u=rwx (0700) or u=rwx,g=rx (0750).

だから私はこのようにパーミッションを変更しました:

sudo chmod 700  /usr/local/var/postgres

そして、すべてが再び機能し、人生は平和で、太陽が輝いていて、たくさんの女の子とビールがありました。


-3

以下の手順は私を助けます:

brew install postgresql brew install postgresql brew postgresql-upgrade-database

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