CentOS Stream 9にPostgreSQL 16をdnf経由でインストール
PostgreSQL Serverを開発サーバーにインストールしたときの覚書。
環境: CentOS Stream 9, PostgreSQL 16.0
1. PostgreSQL Serverをインストール
公式サイトを参考に。
参考: PostgreSQL: Linux downloads (Red Hat family)
リポジトリを検索。
# dnf search postgresql
# dnf info postgresql-server
v13.11だった。
モジュールリストにあるか確認。
# dnf module list postgresql
CentOS Stream 9 - AppStreamName Stream Profiles Summarypostgresql 15 client, server [d] PostgreSQL server and client modulepostgresql 16 client, server [d] PostgreSQL server and client module
あったのでモジュールからインストールする。
# dnf module install postgresql:16
データベース初期化。サービスの名前を確認して自動起動オンにして起動。
# postgresql-setup --initdb
# systemctl list-unit-files -t service
# systemctl enable postgresql
# systemctl start postgresql
# systemctl status postgresql
設定ファイル確認。
# cd /var/lib/pgsql/data
# less postgresql.conf
2. Windowsからネットワーク経由で接続
postgresユーザーの接続パスワード設定。
# su - postgres
$ psql
ユーザー一覧とデータベース一覧表示。
# \du
# \l
パスワード変更。
# alter role postgres with password 'pass';
# quit
rootに戻ってファイヤーウォールの確認。
# systemctl status firewalld
# firewall-cmd --state
# firewall-cmd --list-all --permanent
services: dhcpv6-client http https samba ssh
5432のポートが開いてない。
ファイヤーウォールの登録サービス確認。
# firewall-cmd --get-services
ファイヤーウォールの定義ファイルも一応確認(ポートが5432になっているか)。
# ls /usr/lib/firewalld/services/
# less /usr/lib/firewalld/services/postgresql.xml
追加して再読み込み(再起動は不要)。
# firewall-cmd --add-service=postgresql --permanent
# firewall-cmd --reload
ファイヤーウォールの確認。
# firewall-cmd --list-all --permanent
services: dhcpv6-client http https postgresql samba ssh
PostgresSQL設定でLAN内からのアクセスを許可する。
参考: PostgreSQL: Documentation: 16: 21.1. The pg_hba.conf File
# less /var/lib/pgsql/data/pg_hba.conf
# Allow access from LANhost all all 192.168.10.0/24 scram-sha-256
PostgreSQLの待ち受けポート設定も変更。
# less /var/lib/pgsql/data/postgresql.conf
listen_addresses = '*'
PostgreSQL再起動して確認。
# systemctl restart postgresql
# systemctl status postgresql
CentOS自体のポート待ち受け状態確認。
# ss -atn | grep 5432
LISTEN 0 200 0.0.0.0:5432 0.0.0.0:*LISTEN 0 200 [::]:5432 [::]:*
5432のポートが開いていて待ち受け状態になっている。
WindowsのDBeaverから接続する。
もし接続できないならPowerShellでtelnetを打ってみる。
PS> telnet vm-dev1 5432
ちなみに本番環境はpgAdminを設定するのでポートを開ける必要はない。
【関連記事】
- pgAdmin4を6.19から8.1にアップグレード
- GeoIP2のCSVデータでPostgresSQLデータベースを更新して国別拒否リストを生成
- CentOS8にPostgreSQLをインストール。Windows10からDBeaverで接続