データベース - postgreSQL - インストール - AlmaLinux


 クラウディア


1. 概要
2. インストール
3. 起動
4. バージョン指定
5. 暗号化関数
6. どこにインストールされるか

1. 概要

 「AlmaLinux 9.5」へ、インストールする機会があったので、メモを残します。  本ページは、下記のサイトを参考にさせていただきました。
AlmaLinux 9 に PostgreSQL 15 を yum リポジトリからインストールして、SSL 接続を有効にする #dnf」
「PostgreSQL で暗号化 – pgcrypto を使ってみた

2. インストール

 「root」ユーザ権限で。

dnf install -y postgresql-server
 初期化します。  「AlmaLinux」では、データベースのディレクトリを指定しなければならないようで。  デフォルトでは、ディレクトリは「/var/lib/pgsql/data」のようです。

sudo -u postgres initdb -D /var/lib/pgsql/data
 下記が出力されました。

データベースシステム内のファイルの所有者はユーザ"postgres"となります。
このユーザをサーバプロセスの所有者とする必要があります。

データベースクラスタはロケール"ja_JP.UTF-8"で初期化されます。
デフォルトのデータベース符号化方式はそれに対応してUTF8に設定されました。
initdb: ロケール"ja_JP.UTF-8"用の適切なテキスト検索設定が見つかりませんでした
デフォルトのテキスト検索構成は simple に設定されます。

データベージのチェックサムは無効です。

ディレクトリ/var/lib/pgsql/dataの権限を設定しています ... ok
サブディレクトリを作成しています ... ok
動的共有メモリの実装を選択しています ... posix
デフォルトのmax_connectionsを選択しています ... 100
デフォルトのshared_buffersを選択しています ... 128MB
デフォルトの時間帯を選択しています ... Asia/Tokyo
設定ファイルを作成しています ... ok
ブートストラップスクリプトを実行しています ... ok
ブートストラップ後の初期化を実行しています ... ok
データをディスクに同期しています ... ok

initdb: 警告: ローカル接続に対して"trust"認証を有効にします
pg_hba.confを編集する、もしくは、次回initdbを実行する時に -A オプション、
あるいは --auth-local および --auth-host オプションを使用することで変更する
ことがきます。

成功しました。以下のようにしてデータベースサーバを起動することができます:

    pg_ctl -D /var/lib/pgsql/data -l ログファイル start

3. 起動

 サービスを有効化。

systemctl enable postgresql
 起動。

service postgresql start
 確認。

# service postgresql status
Redirecting to /bin/systemctl status postgresql.service
● postgresql.service - PostgreSQL database server
     Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; preset: disabled)
     Active: active (running) since Wed 2025-01-08 15:11:26 JST; 6s ago
    Process: 6518 ExecStartPre=/usr/libexec/postgresql-check-db-dir postgresql (code=exited, status=0/SUCCESS)
   Main PID: 6520 (postmaster)
      Tasks: 8 (limit: 23020)
     Memory: 16.4M
        CPU: 175ms
     CGroup: /system.slice/postgresql.service
             tq6520 /usr/bin/postmaster -D /var/lib/pgsql/data
             tq6521 "postgres: logger "
             tq6523 "postgres: checkpointer "
             tq6524 "postgres: background writer "
             tq6525 "postgres: walwriter "
             tq6526 "postgres: autovacuum launcher "
             tq6527 "postgres: stats collector "
             mq6528 "postgres: logical replication launcher "

 1月 08 15:11:26 alima95 systemd[1]: Starting PostgreSQL database server...
 1月 08 15:11:26 alima95 postmaster[6520]: 2025-01-08 15:11:26.822 JST [6520] LOG:  ログ出力をログ収集プロセスにリ...
 1月 08 15:11:26 alima95 postmaster[6520]: 2025-01-08 15:11:26.822 JST [6520] ヒント:  ここからのログ出力はディレ...
 1月 08 15:11:26 alima95 systemd[1]: Started PostgreSQL database server.

4. バージョン指定

 前項で、インストールされたものは、「postgreSQL 13」でした。  2025年1月10日時点で、「postgreSQL 17」をインストールするには。  以下、すべて、「root」ユーザ権限で。  リポジトリを追加、して、アップデート。

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

dnf update -y
 バージョン指定して、インストール。  ここでは、「postgreSQL 17」とします。

dnf install -y postgresql17-server
 以降の手順は、前項と同様です。  2025年1月10日時点のバージョンは、下記の通りです。

$ psql --version
psql (PostgreSQL) 17.2
 初期化(このあたり、手順が変わっている)。

$ postgresql-17-setup initdb
Initializing database ... OK
 起動。

systemctl enable postgresql-17

service postgresql-17 start

5. 暗号化関数

 前項の状態に、暗号化関数「pgcrypt」を追加する機会がありましたので、記録を残しておきます。  「root」ユーザ権限で。

dnf install postgresql17-contrib
 インストール後。

service postgresql-17 restart
 有効化するには、「psql」を「postgres」権限で起動して。  (以下、便宜的に、「psql」のプロンプトとして「$」を使用しています)

$ create extension pgcrypto cascade;
CREATE EXTENSION
 この結果、下記の状況になります。

$ \dx
                    インストール済みの拡張一覧
   名前   | バージョン |  スキーマ  |             説明
----------+------------+------------+------------------------------
 pgcrypto | 1.3        | public     | cryptographic functions
 plpgsql  | 1.0        | pg_catalog | PL/pgSQL procedural language

$ select * from pg_extension;
  oid  | extname  | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition
-------+----------+----------+--------------+----------------+------------+-----------+--------------
 14549 | plpgsql  |       10 |           11 | f              | 1.0        |           |
 18348 | pgcrypto |    18347 |         2200 | t              | 1.3        |           |

6. どこにインストールされるか

 デフォルトのバージョンをインストールする場合と、バージョン指定でインストールする場合で、インストール先が異なるようです。  前の方の項で、デフォルトのバージョンをインストールした場合は、下記へインストールされました。

/var/lib/pgsql/data
 バージョン指定で「PostgreSQL 17」をインストールした場合は、下記へインストールされました。

/var/lib/pgsql/17/data
 デフォルトでは、ログは、インストール先のディレクトリ配下「log」ディレクトリへ出力されるようです。

earthcar(アースカー)
Amazonギフトカード