## 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 実践的}}