私はこれに対する解決策を探していましたが、実用的な解決策を見つけることができませんでした。
Brewを使用してpostgresをインストールしました(brew install postgres
)MacBookで、現在brewサービスを使用して実行しています(brew services list
は、postgresを実行中のサービスとして表示します)。ただし、psql
を実行しようとすると、次のエラーが発生します。
psql:サーバーに接続できませんでした:そのようなファイルまたはディレクトリはありませんサーバーはローカルで実行され、Unixドメインソケット「/tmp/.s.PGSQL.5432」で接続を受け入れていますか
誰もが同様の問題をすでに解決していますか?
同じエラーが発生したため、プロセスpidファイルを削除して修正しました。
rm -f /usr/local/var/postgres/postmaster.pid
今日、この問題に遭遇しました。 homebrewは実行されていると考えていたが、postgresは接続の受け入れを停止した。
それを修正するために私は走った、
brew services restart -vvv postgresql
このコマンドからの出力、
==> Successfully stopped `postgresql` (label: homebrew.mxcl.postgresql)
==> Generated plist for postgresql:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>homebrew.mxcl.postgresql</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/opt/postgresql/bin/postgres</string>
<string>-D</string>
<string>/usr/local/var/postgres</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>WorkingDirectory</key>
<string>/usr/local</string>
<key>StandardErrorPath</key>
<string>/usr/local/var/log/postgres.log</string>
</dict>
</plist>
それから、そのログファイルに何かがあるのではないかと考えました。
tail -n 10 /usr/local/var/log/postgres.log
案の定、
[4826] FATAL: lock file "postmaster.pid" already exists
[4826] HINT: Is another postmaster (PID 1489) running in data directory "/usr/local/var/postgres"?
だから、そのファイルを削除しました
rm /usr/local/var/postgres/postmaster.pid
そして、すべてが再び機能し始めました。
私の場合、postmaster.pid
ファイルもありませんでした。 postgresをアップグレードすることで機能させることができました。
brew update
brew upgrade
次に、メジャーバージョンを10から11にアップグレードしたため、これも実行する必要がありました。
brew postgresql-upgrade-database
(ソース https://github.com/facebook/react-native/issues/18760#issuecomment-410533581 )
ここでウィルソンとグラスホッパーからの2つの答えを組み合わせます。
brew services list
を使用してpostgresサービスのplistファイルを確認し、ファイルの場所を見つけて、お気に入りのエディターで開くだけです。
StandardErrorPath
の値は次のようにリストされているはずです。
<key>StandardErrorPath</key>
<string>/usr/local/var/log/postgres.log</string>
そして、tail -n 100 /usr/local/var/log/postgres.log
を使用してログファイルの末尾を末尾に配置する必要があります
私の場合、エラーは次のとおりです。
2017-12-06 11:51:16.078 GMT [85476]致命的:ロックファイル "postmaster.pid"はすでに存在しています2017-12-06 11:51:16.078 GMT [85476]ヒント:別のポストマスター(PID 601)が実行されていますデータディレクトリ「/ usr/local/var/postgres」?
これは、Macをハードシャットダウンする必要があり、postgresがPIDファイルをクリーンアップする機会を得られなかったためです。 PIDファイルrm /usr/local/var/postgres/postmaster.pid
を削除して、postgres brew services start postgresql
を起動するだけです
警告:postgresが実行されていないことが確実でない限り、このPIDファイルを削除しないでください。これを行うには、brew services stop postgresql
を実行し、brew services list
の結果を待って、posgresが停止状態であることを示します。
私のために働いたのは、/usr/local/var/postgres/
フォルダーとpostgresのアンインストールと再インストール
バージョンタップからpostgresql93をインストールすると同じエラーが発生しました。 brew services list
(~/Library/LaunchAgents/homebrew.mxcl.postgresql93.plist
)の出力に示されている.plistファイルを調べると、次のメッセージが見つかりました。
致命的:データディレクトリ「/ usr/local/var/postgres」にグループまたはワールドアクセスがあります
詳細:権限はu = rwx(0700)である必要があります。
この答えに私を導いた: データディレクトリ「/ usr/local/var/postgres」の所有権が間違っています
Sudo chmod -R 700 /usr/local/var/postgres
を実行した後、別のエラーが発生しました:
致命的:ディレクトリ "pg_tblspc"を開けませんでした:そのようなファイルまたはディレクトリはありません
それが私を導きました: `pg_tblspc` OS Xの最新バージョン(ヨセミテまたはエルキャピタン)のインストール後に行方不明
mkdir /usr/local/var/postgres/pg_tblspc/
を実行した後、クラスターは正常に起動しました。