## 1.インストール
### PostgresSQLのインストール/初期設定
REDHAT8へPostgresSQL13をインストールする手順になります。
#### PostgresSQLのリポジトリを追加する
#インストール
dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
#アンインストールする場合[dnf remove pgdg-redhat-repo.noarch]
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm #2021/01/20EPELは無くてもインストールできた。
#アンインストールする場合[dnf remove epel-release.noarch]
#使わないレポジトリは無効化
dnf config-manager --disable pgdg96 pgdg10 pgdg11 pgdg12
#### PostgresSQLのインストール
#postgresqlのモジュール指定解除
dnf module disable postgresql
#dnfキャッシュクリア
dnf clean all
#PostgresSQL13インストール
dnf install postgresql13-server
# インストール結果
dnf list --installed | grep postgresql
postgresql13.x86_64 13.1-3PGDG.rhel8 @pgdg13
postgresql13-libs.x86_64 13.1-3PGDG.rhel8 @pgdg13
postgresql13-server.x86_64 13.1-3PGDG.rhel8 @pgdg13
#### PostgresSQLのデータベース初期化
/usr/pgsql-13/bin/postgresql-13-setup initdb
#データベースが初期化されて、以下のファイルにログがでる。
#cat /var/lib/pgsql/13/initdb.log
■ログの概要(設定するときに役立つかも?)
データベースシステム内のファイルの所有者はユーザ"postgres"となります。
このユーザをサーバプロセスの所有者とする必要があります。
データベースクラスタはロケール"ja_JP.UTF-8"で初期化されます。
デフォルトのデータベース符号化方式はそれに対応してUTF8に設定されました。
initdb: ロケール"ja_JP.UTF-8"用の適切なテキスト検索設定が見つかりませんでした
デフォルトのテキスト検索構成は simple に設定されます。
データベージのチェックサムは無効です。
ディレクトリ/var/lib/pgsql/13/dataの権限を設定しています ... ok
サブディレクトリを作成しています ... ok
動的共有メモリの実装を選択しています ... posix
デフォルトのmax_connectionsを選択しています ... 100
デフォルトのshared_buffersを選択しています ... 128MB
デフォルトの時間帯を選択しています ... UTC
設定ファイルを作成しています ... ok
ブートストラップスクリプトを実行しています ... ok
ブートストラップ後の初期化を実行しています ... ok
データをディスクに同期しています ... ok
成功しました。以下のようにしてデータベースサーバを起動することができます:
#### PostgresSQLの認証方式変更
認証方式の変更をします。
設定内容の解説は、下記サイトが参考になります。
https://server.etutsplus.com/how-to-configure-postgresql-to-use-ident-md5-trust-authentication/
・9,11,13はローカルマシンからの接続なら PW 無しで (無条件で) DB 接続が許可されます。
・16-18は、今回レプリカは作成しないのでコメントアウトしています。
#変更
vi /var/lib/pgsql/13/data/pg_hba.conf
#変更後
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
# host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication all peer
#host replication all 127.0.0.1/32 scram-sha-256
#host replication all ::1/128 scram-sha-256
上記の他に外部からアクセスしたいアドレス/セグメントがあれば以下の記述で追記する。
※IPアドレスは必ずサブネットマスクまで記載すること
host all all [アドレス/セグメント] trust
#### PostgresSQLの認証方式変更
認証方式の変更をします。
設定内容の解説は、下記サイトが参考になります。
https://server.etutsplus.com/how-to-configure-postgresql-to-use-ident-md5-trust-authentication/
#変更
vi /var/lib/pgsql/13/data/postgresql.conf
#変更前
#listen_addresses = 'localhost'
#変更後(外部からのアクセスを許可する)
listen_addresses = '*'
#### PostgresSQLの有効化/起動
systemctl restart postgresql-13
systemctl enable postgresql-13
{{tag>REHL PostgresSQL 実践的}}