三歩あるけば物も忘れる

お腹のお肉がメタボックル

ユーザ用ツール

サイト用ツール


InfrastructureConstruction:PostgresSQL:Installation

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

InfrastructureConstruction/PostgresSQL/Installation.txt · 最終更新: 2021/01/17 by 127.0.0.1