CentOS8にPostgreSQLをインストール。Windows10からDBeaverで接続

久しぶりにPostgreSQLをインストールしたときの覚書。

環境: CentOS Stream 8, PostgreSQL 14.2


CentOSにPostgreSQLのインストール

リポジトリにあるposgresql-serverのバージョンを確認。
# dnf search postgresql
# dnf info postgresql-server

Available Packages
Name         : postgresql-server
Version      : 10.19
Release      : 1.module_el8.6.0+1047+4202cf9a
Architecture : x86_64

# dnf module list postgresql

最新バージョンv14を公式ページに従ってインストールすることにした。
参考: PostgreSQL: Linux downloads (Red Hat family)

# dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# dnf -qy module disable postgresql

インストール
# dnf install postgresql14-server

初期化して自動起動Onしてサーバー起動
# /usr/pgsql-14/bin/postgresql-14-setup initdb
# systemctl enable postgresql-14
# systemctl start postgresql-14

バージョン確認
# psql --version

psql (PostgreSQL) 14.2

設定ファイル(pg_hba.confなど)の場所確認。起動オプションで与えられているはず。
# systemctl status postgresql-14

/usr/pgsql-14/bin/postmaster -D /var/lib/pgsql/14/data/

設定ファイル確認
# cd /var/lib/pgsql/14/data/
# less postgresql.conf
# less pg_hba.conf

postgresユーザーになる
# su - postgres

ここはどこ?
$ pwd

/var/lib/pgsql

プロファイル確認
$ less .bash_profile

データベースに接続してユーザー一覧を表示
$ psql
# \du
# quit

文字コードを確認
参考: PostgreSQL: Documentation: 14: 24.3. Character Set Support
$ psql -l

   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres


Windows10からネットワーク経由で接続する

CentOSは開発サーバーなのでLAN内のPCから接続できるようにする。

postgresユーザーの接続パスワード設定
$ psql
# alter role postgres with password 'pass';
# quit

(rootになって)ポート5432を開けるためにfirewalldを設定
サービスに登録されているか確認
# firewall-cmd --get-services | grep postgre

念のため、定義ファイルを確認して登録して再読み込み。
# less /usr/lib/firewalld/services/postgresql.xml
# firewall-cmd --add-service=postgresql --permanent
# firewall-cmd --reload

postgresユーザーになってPostgreSQLサーバーの設定。
# su - postgres
$ cd 14/data/
$ less postgresql.conf

listen_addresses = '*'

ホストベース認証(接続元)の設定
参考: PostgreSQL: Documentation: 14: 21.1. The pg_hba.conf File
$ less pg_hba.conf

# Allow access from LAN
host    all             all             192.168.10.0/24         scram-sha-256

rootになって再起動
# systemctl restart postgresql-14

無事起動されているかログを確認。
# less log/postgresql-Sun.log


Windows10からDBeaverを使って接続してみる。
DBeaverはMicrosft StoreからDBeaver CE(Community Edition)をインストールした。


接続できないときは下記確認する

  • サーバーのログ確認
  • # less log/postgresql-Sun.log
  • ポートが空いているか。
    # ss -atn | grep 5432
  • クライアントPCからtelnetで接続できるか
    > telnet vm-dev3 5432


【関連記事】