Mac+HomebrewでPostgreSQLが起動しない場合の対応

小ネタかつ既出ですが、自分用にメモします。

  • macOS High Sierra
  • Homebrew 1.3.8

問題

PostgreSQLに接続しようとしたりpsqlを使おうとしたりすると、たまにソケットがないと言われて接続できないことがあります。
Macbookがフリーズして再起動した後に起きることがあるようです。

$ psql
psql: 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"?

brew services listでチェックすると、PostgreSQLのステータスのstartedが赤く表示されています(正常の場合は緑)。

「コンソール」アプリを開くと、system.logで以下が延々と出力されています。

Dec 21 07:10:01 tori com.apple.xpc.launchd[1] (homebrew.mxcl.postgresql[34025]): Service exited with abnormal code: 1
Dec 21 07:10:01 tori com.apple.xpc.launchd[1] (homebrew.mxcl.postgresql): Service only ran for 0 seconds. Pushing respawn out by 10 seconds.
Dec 21 07:10:05 tori com.apple.xpc.launchd[1] (com.apple.preference.displays.MirrorDisplays): Service only ran for 0 seconds. Pushing respawn out by 10 

自分の場合、おそらくフリーズのタイミングでpostmaster.pidに傷が入ったと思われます。

解決方法

結局postmaster.pidを削除してサービスを再起動することで解決できました。Linux環境でも効くと思います。

$ rm /usr/local/var/postgres/postmaster.pid
$ brew services restart postgresql
Stopping `postgresql`... (might take a while)
==> Successfully stopped `postgresql` (label: homebrew.mxcl.postgresql)
==> Successfully started `postgresql` (label: homebrew.mxcl.postgresql)

復活しますた。

参考: Stackoverflow Postgres could not connect to server

関連記事

MacのhomebrewでOpenSSLがビルドエラーになる場合の対処方法

デザインも頼めるシステム開発会社をお探しならBPS株式会社までどうぞ 開発エンジニア積極採用中です! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

hachi8833

Twitter: @hachi8833、GitHub: @hachi8833 コボラー、ITコンサル、ローカライズ業界、Rails開発を経てTechRachoの編集・記事作成を担当。 これまでにRuby on Rails チュートリアル第2版の半分ほど、Railsガイドの初期翻訳ではほぼすべてを翻訳。その後も折に触れてそれぞれ一部を翻訳。 かと思うと、正規表現の粋を尽くした日本語エラーチェックサービス enno.jpを運営。 実は最近Go言語が好き。 仕事に関係ないすっとこブログ「あけてくれ」は2000年頃から多少の中断をはさんで継続、現在はnote.muに移転。

hachi8833の書いた記事

週刊Railsウォッチ

インフラ

ActiveSupport探訪シリーズ