幸福なプログラマ

プログラマは幸福になれる。

Homebrewでインストールしたpostgresqlのpsqlコマンドが動かなくなった時の対処法

❯ psql -l
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"?

このようなエラーが出た場合の対処方法です。 エラーメッセージでGoogle検索すると多種多様な解決方法が出てきますが、自分の場合は以下の方法で解決しました。

  1. brew upgrade postgresqlpostgresqlを最新に更新
  2. brew info で出力されたメッセージに従う

こんな感じのメッセージが出力されるはずです

❯ brew info postgresql
postgresql: stable 11.2 (bottled), HEAD

〜
中略
〜

To migrate existing data from a previous major version of PostgreSQL run:
  brew postgresql-upgrade-database

To have launchd start postgresql now and restart at login:
  brew services start postgresql
Or, if you don't want/need a background service you can just run:
  pg_ctl -D /usr/local/var/postgres start
==> Analytics
install: 84,642 (30 days), 236,127 (90 days), 754,771 (365 days)
install_on_request: 75,641 (30 days), 208,395 (90 days), 652,972 (365 days)
build_error: 0 (30 days)

/usr/local/Cellar/postgresql

やることは

  1. brew postgresql-upgrade-database 実行
  2. brew services start postgresql 実行
    • すでにstartしている場合は念の為stopしてから再度start
  3. pg_ctl -D /usr/local/var/postgres start 実行

これで治りました。