initdb を実行したユーザーがデータベース領域の所有者となる。postgres にて実行。
[postgres]$ initdb --encoding=UTF-8 --no-locale --data-checksums
--no-locale は、ロケールを利用しない為のオプション、ロケールを利用すると
日本語の並び替えが出来ない場合がある。
--data-checksums は、テーブルやインデックスデータにチェックサムを付加する。
・データベースクラスタデータや設定ファイル、ログ等を格納する領域をデータベース・クラスタと呼ぶ。
initdb コマンドを実行すると、環境変数 PGDATA に設定したディレクトリ内に、
データベース・クラスタが作成、初期化される。
| postgresql.conf | 設定ファイル |
| pg_hba.conf | アクセス制御の設定ファイル |
| template0 | データベース作成時のテンプレート |
| template1 | データベース作成時のテンプレート |
| postgres | テスト用データベース |
[postgres]$ pg_ctl -w start
[postgres]$ psql
# ユーザー postgres のパスワード設定
postgres=# alter user postgres with encrypted password 'パスワード';
# 新規ユーザー作成、パスワード設定
postgres=# create user ユーザー名 with password 'パスワード' createdb;
# 確認
postgres=# select * from pg_shadow;
postgres=# \q
[user]$ createdb -U ユーザー名 ユーザー名
・/usr/local/pgsql/data/pg_hba.conf の編集
[postgres]$ vim /usr/local/pgsql/data/pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only(Unixドメインソケット経由)
local all all md5
# IPv4 local connections:(ネットワーク経由 IPv4)
host all all 127.0.0.1/32 reject
# IPv6 local connections:(ネッワーク経由 IPv6)
host all all ::1/128 reject
# Allow replication connections from localhost, by a user with the replication privilege.
# replication という名前の仮想データベースへの接続権限
local replication all md5
host replication all 127.0.0.1/32 reject
host replication all ::1/128 reject
| trust | 認証なし |
| md5 | MD5 認証 |
| reject | 接続拒否 |
[postgres]$ pg_ctl reload