Railsの勉強中の身で、db、PostgreSQLがどうだという事はまだまだ理解が浅いプログラミング初心者です。
練習中に発生したトラブルで3日間もがき苦しみましたので、備忘録として初Qiita投稿です。誰かのためになると嬉しいです!
#発生状況
作業中、何かのはずみでPCが突然ダウン、自動的に再起動。その後突然 PG::ConnectionBad のエラー表示が出るようになった。
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"?
環境
macOS Catalina 1o.15.6
ruby 2.6.3
Rails 6.0.3.4
PostgreSQL 13.2
解決までの道のり
% postgres -D /usr/local/var/postgres
2021-02-23 14:04:19.147 JST [90270] FATAL: could not remove old lock file "/tmp/.s.PGSQL.5432.lock": Permission denied
なるほど!このファイルが取り除けないのね…権限がない?…どういう事だろう?とりあえず…
% rm /usr/local/var/postgres/postmaster.pid
rm: /usr/local/var/postgres/postmaster.pid: No such file or directory
No such fileと言われてしまう…権限?
$ chmod 1777 /tmp
をやった後、
% rm /usr/local/var/postgres/postmaster.pid
を実行!今度こそ!
rm: /usr/local/var/postgres/postmaster.pid: No such file or directory
あれ?!やっぱり権限がない?さすればということで、このページを参考にしてシステム環境設定でターミナルの設定を変えてみた。
で、上記と同じことをしてもダメ!
ここに書いてないこともいっぱい試し、3日間もがいたけどいよいよ詰んだか…と思った時、ハタと思いついた。権限なんだったらひょっとしてsuper do ?!
% sudo chmod 1777 /tmp
% rm /usr/local/var/postgres/postmaster.pid
お!うまくいったかも!!忘れずに…
% rails db:create
% rails db:migrate
お〜〜〜〜〜〜動いた!!
…ということで長くなってしまいましたが、同じ症状に苦しむ方のお役に少しでもなれば幸いです。
#参考にしたサイト
https://stackoverflow.com/questions/13410686/postgres-could-not-connect-to-server
https://qiita.com/great084/items/98c83364f246473249c4
https://make-from-scratch.com/error-connections-on-unix-domain-socket-tmp-s-pgsql-5432/