ある朝スリープしているMacを起動したらMacがクラッシュして電源が落ちていたので、ローカル環境を開いてオリジナルのフルスクリーン機能をチェックとデザインの調整を行おうとしたとき、データベースの関連のエラーでページを表示できない不具合があった。原因を調べてみると次のエラーコードが表示されていた。
could not connect to server: Connection refused Is the server running on host “127.0.0.1” and accepting TCP/IP connections on port 5432?
今回はそれについての解決法を記載する。
Table of Contents
解決法
一度データベースを停止した後に下記のファイルを削除する必要があります。
postmaster.pid
これをフォルダから検索するもいいしコマンドを使って削除することもできます。僕の場合は以下のコマンドを使った
rm -f /usr/local/var/postgres/postmaster.pid
これを使うことで、postmaster.pidファイルを強制的に削除することで解決できた。このpidファイルが悪さをしてPostgreがうまく起動できなかったようだ。
エラーが起きた原因
そもそもなぜこのエラーは発生したのか?なぜ.pidファイルが発生したのか?
それはMacのクラッシュが大きく関わっている。(僕の場合)PostgreSQLには異常終了した際にログを残すpidファイルを削除せずに残ってしまうことがある。一度残ってしまうと新しくPostgreを制作することはできないし、そもそも接続すらできないというかなり辛い事態に陥ってしまう。
エラーを起こさないようにする心掛け
これは至って単純で、Postgreを使い終わったら停止するです。
基本的に異常終了さえしなければ、pidファイルを作成されることはありませんからスリープする前にPostgre停止コマンドを入力して停止すればいいだけの話です。
もう一つは定期的にジャンクを消すことどうしてもパソコンを長い間使っているとジャンクが溜まっていきクラッシュの原因になるためクリーナーアプリを使って削除することをお勧めします。個人的に一番お勧めなのはCleanMyMac X です。
宣伝
現在、動画クリエイターが作った動画を料金を払って宣伝すると動画クリエイターだけでなく使用した素材の開発者にも利益が分配される動画投稿サイトForbindeのベータ版を公開しています。もしご興味がありましたら、是非アクセスして動画投稿等の意見、ご要望がございましたら ここが使いにくいとかあったらcontactやTwitterに言っていただければ幸いです。