インストール
yum -y install postgresql-devel postgresql-server
特にリポジトリの追加等は行っておりません。
次のバージョンがインストールされました。
# psql --version
psql (PostgreSQL) 9.2.15
#
初期設定
CentOS 6 では、initdb は postgresql-setup ではなく、service postgresql initdb
でした。
CentOS 7 となり、サービスの起動等以外にも変更となり、この点がとくに分かり辛く、調べるのに時間を使ってしまいました><。
# 初期化
postgresql-setup initdb
# 自動起動を有効
systemctl enable postgresql.service
# 起動
systemctl start postgresql.service
設定ファイル編集 1. パスワード認証へ変更
# バックアップ
cp -a /var/lib/pgsql/data/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf.org
# パスワード認証へ変更
sed -i -i 's|local all all peer|local all all md5|' /var/lib/pgsql/data/pg_hba.conf
sed -i -i 's|host all all 127.0.0.1/32 ident|host all all 127.0.0.1/32 md5|' /var/lib/pgsql/data/pg_hba.conf
sed -i -i 's|host all all ::1/128 ident|host all all ::1/128 md5|' /var/lib/pgsql/data/pg_hba.conf
次のように変更されました♪
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident
↓
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
設定ファイル編集 2. パスワード暗号化 (設定変更せず)
password_encryption (boolean)
ENCRYPTEDもしくはUNENCRYPTEDの指定なしで、CREATE USER もしくはALTER USERにてパスワードが指定されている場合、このパラメータはパスワードを暗号化するか否かを決定します。 デフォルトはon(パスワードを暗号化)です。
デフォルトでオンのため、次の修正は行いませんでした。
# バックアップ
cp -a /var/lib/pgsql/data/postgresql.conf /var/lib/pgsql/data/postgresql.conf.org
# パスワード暗号化
sed -i -e 's/#password_encryption = on/password_encryption = on/' /var/lib/pgsql/data/postgresql.conf
設定ファイル編集 3. スーパーユーザに (postgres) にパスワード設定
ヒアドキュメントを使って、シェルから実行しました。
su - postgres <<EOT
psql -U postgres
ALTER USER postgres encrypted password 'vagrant';
\q
exit
EOT
確認は、次の SQL で行うことができました。
SELECT * FROM pg_shadow;
設定変更の反映
PostgreSQL を再起動して、変更した設定を反映させています。
# 再起動して設定反映
systemctl restart postgresql.service
おわりに
次の Vagrant のテンプレート作成のために、久しぶりに PostgreSQL のインストールを行いました。
調べる中で覚えておきたいこともございましたので、Github にコードを反映させる以外にノートいたしました。
以上です。