MacOS に Homebrew でインストールした PostgreSQL の全バージョンをアンインストールする方法をご紹介します。
新規に Ruby on Rails で開発しようと思ったところ、ひさしく PostgreSQL を MacOS の開発環境で利用してなかったので PG::ConnectionBad というエラーで rails server しても PostgreSQL に接続できませんでした。
$ brew services restart postgresql
Stopping `postgresql`... (might take a while)
==> Successfully stopped `postgresql` (label: homebrew.mxcl.postgresql)
==> Successfully started `postgresql` (label: homebrew.mxcl.postgresql
と brew services restart コマンドで PostgreSQL 再起動してみてもダメだったので、全てアンインストールしてゼロから PostgreSQL をインストールしようと思ったのが、背景です。
まず、アンインストールする前にインストール済みの PostgreSQL バージョン確認しておきます。
$ ls /usr/local/Cellar/postgresql
9.3.5_1 9.6.3
ちなみに、現時点の PostgreSQL 最新バージョンは 9.6.5 です。
$ brew info postgresql
postgresql: stable 9.6.5 (bottled), HEAD
Object-relational database system
https://www.postgresql.org/
brew uninstall —force postgresql というように —force オプションを付けて brew unistall することで、全てのバージョンをアンインストールすることができます。
$ brew uninstall --force postgresql
Uninstalling postgresql... (2,936 files, 32.1MB)
ちなみに —force オプションを付けないで uninstall すると —force オプションの存在を教えてくれます。
$ brew uninstall postgresql
Uninstalling /usr/local/Cellar/postgresql/9.6.3... (3,259 files, 36.6MB)
postgresql 9.3.5_1 1 is still installed.
Remove all versions with `brew uninstall --force postgresql`.
initdb で指定した path に諸々のファイルがあると思うので、それらも忘れずに削除しておきましょう。
$ ls -l /usr/local/var/postgres
total 37608
-rw------- 1 codenote admin 4B 11 25 2014 PG_VERSION
drwx------ 5 codenote admin 170B 11 25 2014 base
drwx------ 41 codenote admin 1.4K 1 30 2015 global
drwx------ 3 codenote admin 102B 11 25 2014 pg_clog
-rw------- 1 codenote admin 4.4K 11 25 2014 pg_hba.conf
-rw------- 1 codenote admin 1.6K 11 25 2014 pg_ident.conf
drwx------ 4 codenote admin 136B 11 25 2014 pg_multixact
drwx------ 3 codenote admin 102B 6 28 07:26 pg_notify
drwx------ 2 codenote admin 68B 11 25 2014 pg_serial
drwx------ 2 codenote admin 68B 11 25 2014 pg_snapshots
drwx------ 3 codenote admin 102B 6 30 03:13 pg_stat
drwx------ 2 codenote admin 68B 6 30 03:13 pg_stat_tmp
drwx------ 3 codenote admin 102B 11 25 2014 pg_subtrans
drwx------ 2 codenote admin 68B 11 25 2014 pg_tblspc
drwx------ 2 codenote admin 68B 11 25 2014 pg_twophase
drwx------ 4 codenote admin 136B 11 25 2014 pg_xlog
-rw------- 1 codenote admin 20K 11 25 2014 postgresql.conf
-rw------- 1 codenote admin 123B 6 28 07:26 postmaster.opts
-rw-r--r-- 1 codenote admin 18M 6 30 03:13 server.log
rm -rf /usr/local/var/postgres
削除しておかないと、PostgreSQL を再インストールしても、
$ 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"?
というエラーで PostgreSQL に接続できない問題に遭遇するはずです。
全てアンインストールして綺麗になったら、再び PostgreSQL をインストールしましょう。