AlmaLinux PostgreSQL 13をインストールする

AlmaLinux PostgreSQL 13をインストールする

AlmaLinuxにPostgreSQL 13を構築するまでの手順を記述してます。

環境

  • OS AlmaLinux 8.4 (Electric Cheetah)

アップデート

まずは、アップデートを行います。

sudo dnf -y update

moduleを確認します。

dnf module list postgresql

<出力結果>
AlmaLinux 8 - AppStream
Name                                   Stream                             Profiles                                      Summary                                                       
postgresql                             9.6                                client, server [d]                            PostgreSQL server and client module                           
postgresql                             10 [d]                             client, server [d]                            PostgreSQL server and client module                           
postgresql                             12                                 client, server [d]                            PostgreSQL server and client module                           
postgresql                             13                                 client, server [d]                            PostgreSQL server and client module  

ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled

「13」が存在するので、これを有効にしてインストールを行います。

sudo dnf module enable postgresql:13 -y

PostgreSQL 13インストール

dnfでインストールを行います。

sudo dnf install -y postgresql postgresql-server

PostgreSQL 13初期化

初期化を行っておきます。

sudo /usr/bin/postgresql-setup initdb

<出力結果>
WARNING: using obsoleted argument syntax, try --help
WARNING: arguments transformed to: postgresql-setup --initdb --unit postgresql
 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

起動設定と開始を行います。

sudo systemctl enable --now postgresql

開始のみ場合は
sudo systemctl start postgresql

ステータスを確認します。

systemctl status postgresql

設定ファイル等は、下記の場所に存在します。

sudo ls /var/lib/pgsql/data

<出力結果>
PG_VERSION        global        pg_dynshmem    pg_logical    pg_replslot   pg_stat      pg_tblspc    pg_xact               postmaster.opts
base              log           pg_hba.conf    pg_multixact  pg_serial     pg_stat_tmp  pg_twophase  postgresql.auto.conf  postmaster.pid
current_logfiles  pg_commit_ts  pg_ident.conf  pg_notify     pg_snapshots  pg_subtrans  pg_wal       postgresql.conf

PostgreSQL13 管理ユーザーのパスワード設定

管理者ユーザーのパスワードを更新しておきます。

sudo su - postgres

psql -c "alter user postgres with password 'password'"

<出力結果>
ALTER ROLE

作業が終われば、抜けておきます。

exit

外部接続許可

外部から接続できるようにするには「/var/lib/pgsql/data/」にある
「postgresql.conf」を以下のように編集します。

listen_addresses = '*'
port = 5432

logファイルの形式も変更しておきます。

#log_filename = 'postgresql-%a.log'	# log file name pattern,
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'

次に「pg_hba.conf」の編集を行います。
※「0.0.0.0/0」は全て許可になるので「192.168.1.0/24」など環境に合わせて設定して下さい。

#host    all             all             127.0.0.1/32            ident
host    all             all             0.0.0.0/0            md5

接続するユーザーも作成しておきます。

sudo su - postgres

<出力結果>
createuser --pwprompt --interactive pgadmin

新しいロールのためのパスワード: 
もう一度入力してください:
新しいロールをスーパユーザにしますか? (y/n)y

「exit」で抜けて、PostgreSQLを再起動します。

sudo systemctl restart postgresql

あとは、firewallを許可すれば外部からアクセス可能になります。

sudo firewall-cmd --add-port=5432/tcp --zone=public --permanent
sudo firewall-cmd --reload