Posted at

macos+homebrew+postgres で接続エラー「PG::ConnectionBad: 〜"/tmp/.s.PGSQL.5432"?」を解決


環境


  • macOS Mojave 10.14.4

  • postgres (PostgreSQL) 11.2


  • brew install postgresqlしています


エラーを確認

 $ psql -l

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


これで解決できた報告あったけど、解決できませんでした

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



サービスを開始・停止・再起動させてみる

 $ brew services start postgresql

$ brew services stop postgresql
$ brew services restart postgresql


postgresのメジャーバージョンアップ時(v9.0->v10.0など)

 $ brew postgresql-upgrade-database


ここで解決できていることを🙏っていたのですが、🙅。

以下のコマンドを実行したときに表示されるログで気づきました。postgresが使うディレクトリが不足していてサービスの起動ができない挙動 をしていました。


それでもだめなら。ログを見てエラー箇所を特定

 $ postgres -D /usr/local/var/postgres

// TODO: ここでエラーになっているメッセージに従う

以下、作成したディレクトリ(環境によって異なるかもしれません。postgres -D /usr/local/var/postgresを実行しながら1つずつ解決していってください)


足りなかったディレクトリ

 mkdir /usr/local/var/postgres/pg_replslot

mkdir /usr/local/var/postgres/pg_twophase
mkdir /usr/local/var/postgres/pg_stat
mkdir /usr/local/var/postgres/pg_tblspc
mkdir /usr/local/var/postgres/pg_commit_ts
mkdir /usr/local/var/postgres/pg_logical
mkdir /usr/local/var/postgres/pg_logical/snapshots
mkdir /usr/local/var/postgres/pg_logical/mappings