CentOs7にPostgreSQL 13を構築する

CentOs7にPostgreSQL 13を構築する

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

環境

  • OS CentOS 7.9.2009 (Core)

リポジトリ追加

まずはリポジトリを追加します。

sudo yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

アップデートして再起動します。

sudo yum -y update
sudo reboot

PostgreSQL 13をインストール

リポジトリの追加が終われば、リストを確認してみます。

sudo yum repolist

<出力結果>
pgdg13/7/x86_64                                                      PostgreSQL 13 for RHEL/CentOS 7 - x86_64

インストールします。

 sudo yum -y install postgresql13 postgresql13-server

PostgreSQL 13初期化

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

sudo /usr/pgsql-13/bin/postgresql-13-setup initdb

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

sudo systemctl enable --now postgresql-13

開始のみ場合は
sudo systemctl start postgresql-13

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

systemctl status postgresql-13

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

sudo ls /var/lib/pgsql/13/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

外部接続許可

外部から接続できるようにするには「/var/lib/pgsql/13/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            scram-sha-256
host    all             all             0.0.0.0/0            md5

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

sudo su - postgres

<出力結果>
-bash-4.2$ createuser --pwprompt --interactive pgadmin
新しいロールのためのパスワード: 
もう一度入力してください:
新しいロールをスーパユーザにしますか? (y/n)y
-bash-4.2$ ログアウト

PostgreSQLを再起動します。

sudo systemctl restart postgresql-13

あとは、firewallを許可しておきます。

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