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