LoginSignup
57
39

More than 1 year has passed since last update.

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

Last updated at Posted at 2019-04-03

2022/10/19 追記

Homebrew でインストールしていると、postmaster.pidのパスが変わっていた。
こちらを削除することで解決できる。

cd /opt/homebrew/var/postgres
rm postmaster.pid

環境

  • 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が使うディレクトリが不足していてサービスの起動ができない挙動 をしていました。

それでもだめなら。ログを見てエラー箇所を特定
 $ 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

追記:2020/01/09 libicui18n.61.dylibがみつからない

ログに、libicui18n.61.dylibがみつからないエラーが出ました。

dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.61.dylib
  Referenced from: /usr/local/bin/postgres
  Reason: image not found

PHP -vしたら「dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.61.dylib」と出るときの対処法 - Qiitaを参考にhomebrewをアップデートすることで解決できました。 :pray:

brew update && brew upgrade

追記:2020/03/12 データベースのバージョンが違う

バージョン10から11にアップグレードしたときもこのエラーが出る場合がありました。

postgresqlのバージョンが違っていますという旨のエラーがでます
$ postgres -D /usr/local/var/postgres
FATAL:  database files are incompatible with server
DETAIL:  The data directory was initialized by PostgreSQL version 11, which is not compatible with this version 12.2.

この記事によると「brew info postgresqlすると、DBのアップグレードコマンドも表示される」とあったので試してみると、うまくいきました。

$ brew postgresql-upgrade-database
・・・(省略)
==> Upgraded postgresql data from 11 to 12!
==> Your postgresql 11 data remains at /usr/local/var/postgres.old
==> Successfully started `postgresql` (label: homebrew.mxcl.postgresql)
57
39
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
57
39