【再起動して解決】connections on Unix domain socket “/tmp/.s.PGSQL.5432”?への対処

エラーコードにいらつく

Ruby on Rails でアプリをつくったりスクールの課題をシコシコ進めているとたまに出てくるエラーコード

connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

新しくテーブルつくった、カラムを追加した際にマイグレーションをかけようとしたとき、よく出てきます。

↓こんな感じ。

これまでメンターの手を借りて、なんとか解決していたのですが、正直一体何が起こっているのか分かってなかったので 今回自力での解決に挑戦してみます。

エラーコードでググってみる。

connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

ググる

日本語やら英語サイトやら混同して出てくる。

けどpostgresをインストールしなおしたり
怪しげなパッチを入れたりとで正直良くわかんない。

対処療法的にちょっと割り切れなかったので、英語のQ&Aサイトスタックオーバーフローを見て回ることに。

うへぇ英語・・・orz

そこに書かれている内容をなぞりながら考察を加えていこうと思います。

解決までのプロセス

postgresをアップロードしてみる

まず打つように書かれたコマンドは


brew install postgres

バージョン管理ソフトhomebrewを使って,postgreをアップロードするっぽい。

途中まで無事に進んでるっぽかったんですが、後半部分に怪しげなエラーが。

linkファイル=windowsでいうシートカット
がおかしいから一度はずしてもう1回linkしなおしてちょんまげ
と解釈。

linkファイルの再構成

というわけで先のエラーコード末尾に書かれていた下記コマンドを入力。

うむ、なんかうまくいったっぽい。もう一度linkをつけなおす。

bin/rake db:migrate を打つも解決せず。

うまくいったかなと再度


bin/rake db:migrate

と打つが・・・・

、変わらず。うそかーい。

servicesのインストール・起動

でスタックオーバーフローの次の工程をみると、下記コマンドが。


brew tap homebrew/services

homebrewのservicesという機能を追加するっぽい。
なんじゃservicesて。って調べたらでてきました。

Homebrew Servicesを使ってサービスを管理する

ローカルのデータベースを手動で制御するソフトっぽい。

このservicesを使ってpostgreを再起動させます。

いったんスタートさせ

止めて

再起動。

いずれも成功。

再度 bin/rake db:migrate で無事成功!

今度こそ!

えがった・・・。

ふりかえり

結局、postgreを手動で再起動したことで復活した感じ。
クラウドの仮想開発環境 cloud9 では一定時間が経過するとデータベースが止まってしまうため

sudo service postgresql start

を打ち込んで都度再起動してましたが

ローカル開発環境でも、たまーに同じことが起こるんでしょうかね。
電源切らない限りずっと動いてるんかと思ってましたワイ。

 

今日の一句

“ローカルも たまに休憩 はさみます(多分)”

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です