インストール
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 にコードを反映させる以外にノートいたしました。
以上です。