OSX で PostgreSQL の初期設定

先日、 突然 Standard user に降格されるという事件があったので、 OS のクリーンインストールを行いました。

mdkn999.hatenablog.com

パッケージのインストールは Ansible + Homebrew でやったのですが、PostgreSQL の初期設定の手順は手動で行ったのでメモとして残しておきます(いずれこれも自動化したい。。。)。

環境をば。

$ uname -mprsv
Darwin 15.6.0 Darwin Kernel Version 15.6.0: Mon Aug 29 20:21:34 PDT 2016; root:xnu-3248.60.11~1/RELEASE_X86_64 x86_64 i386

$ brew --version
Homebrew 0.9.9 (git revision 95863; last commit 2016-09-07)
Homebrew/homebrew-core (git revision 24d3; last commit 2016-09-08)

$ postgres --version
postgres (PostgreSQL) 9.5.4

まず、手動で Homebrew で PostgreSQL をいれるときは多分こんな感じだと思います。

$ brew search postgresql

$ brew install postgresql

続いて DB の初期化と起動。なお、initdb したときに、/usr/local/var/postgresが既に存在してるヨ。削除するか別のディレクトリ指定してネ。と言われたのでrm -rf /usr/local/var/postgres してから初期化した。

$ initdb /usr/local/var/postgres -E utf8

$ pg_ctl -D /usr/local/var/postgres -l logfile start

psql -lで DB の一覧が表示されれば OK。

次に、Role と DB の作成。

Role は postgres という名称で、Superuser, Login の権限を付けます。\duで Role の一覧が確認できます。

# create role postgres with superuser login password 'postgres';

DB は sample_database という名称で Owner を postgresに。

# create database sample_database owner postgres;

なお、DB と Role の削除は以下のコマンドで。postgressample_databaseの Owner なので先に Role を削除しようとすると怒られる。

# drop database sample_database;

# drop role postgres;

以上。