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
$ 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をアップデートすることで解決できました。
brew update && brew upgrade
追記:2020/03/12 データベースのバージョンが違う
バージョン10から11にアップグレードしたときもこのエラーが出る場合がありました。
$ 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)