状況
アプリケーション開発中にserver起動をしたところ下記のエラーが発生。
直前までserver起動やコマンドエラーはありませんでした。
エラー内容
PG::ConnectionBad: connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such file or directory
Is the server running locally and accepting connections on that socket?
環境
- macOS Big Sur 11.6.1
- PostgreSQL 14.0
- Rails 6.0.3
対処
postgresqlの停止と再起動を試みる
$ brew services stop postgresql
$ brew services start postgresql
$ brew services restart postgresql
エラー内容から上記を試すも改善せず。
こちらの記事を参考にpostmaster.pid
を削除して再起動してみましたが改善しませんでした
下記の手順で改善
#postgresql停止
$ brew services stop postgresql
#postgresqlのディレクトリまで移動
$ cd /usr/local/var/
#ディレクトリの存在を確認
$ ls -la
#postgresqlのディレクトリ削除
$ rm -rf postgresql
#postgresqlのディレクトリを再度作成
$ initdb /usr/local/var/postgresql
#postgresqlをスタートさせる
$ pg_ctl -D /usr/local/var/postgresql -l logfile start
一応、移動して確認した前半の手順も記載しています。
その後、下記も実行しました。
$ rails db:create
$ rails db:migrate
無事に改善しコマンドが使用出来るようになりました🙌
まとめ
どうやらPCの再起動などでpostgresqlが正常に起動しないことがあるとのこと。
今回はアプリケーション作成前からPCは起動したままなので該当せず。
直前までは問題なく動作していたので、ファイル自体がクラッシュしてしまっていたようです。
#参考