1 実習環境の構築(解説)
この章では、実習環境の構築方法を説明します。実習環境は以下の手順で構築します。
1.1 PostgreSQLのインストールと初期設定(AlmaLinuxの場合)
1.2 PostgreSQLのインストールと初期設定(Ubuntuの場合)
1.3 実習用データベースの作成
参考 作成した実習環境を消去する方法
なお、ここでは実習環境を構築するための基本的な手順を示すに留め、コマンド等の詳しい使用方法については後の章で改めて説明します。
1.1 PostgreSQLのインストールと初期設定(AlmaLinuxの場合)
PostgreSQLは、クライアント・サーバ構成のデータベースシステムです。AlmaLinuxで初めてPostgreSQLを使用する際には、以下の手順でインストールと初期設定を行います。なお、この手順はOS管理者(rootユーザ)、またはOS管理者権限(sudoコマンド)を行使できるユーザで行う必要があります。
(1) postgresユーザの作成
(2) PostgreSQLパッケージのインストール
(3) データベースクラスタの初期化
(4) データベースサーバの起動
(1) postgresユーザの作成
PostgreSQLを動作させる場合、通常はOS管理者とは別にPostgreSQL専用のDB管理者を作成します。DB管理者のユーザ名は、慣例的に 'postgres' を使用します。postgresユーザは、PostgreSQLのインストール時に自動的に作成することができますが、ファイルの保存場所としてホームディレクトリがあった方が便利なので、手動で作成しておきます。
useraddコマンドでpostgresユーザとホームディレクトリ '/home/postgres' を同時に作成します。
sudo useradd postgres
この後、postgresユーザでログインできるようにするために、passwdコマンドでパスワードを設定します。
sudo passwd postgres
なお、OSの管理者権限があれば以下の例のようにsudoコマンドでpostgresユーザにログインできるので、パスワードの設定は省略しても構いません。
[admin@host1 ~]$ sudo -iu postgres
[postgres@host1 ~]$ pwd
/home/postgres
[postgres@host1 ~]$ exit
ログアウト
[admin@host1 ~]$
(2) PostgreSQLパッケージのインストール
PostgreSQLのリリースサイクルは、毎年1回のバージョンアップを含むメジャーリリースと、その後5年間のメンテナンスのマイナーリリースがあります。OSのディストリビューションに標準で含まれるバージョンは最新ではない可能性がありますが、この資料の実習環境としては全く問題ないため、標準のバージョンをインストールします。AlamLinux 9.3においてdnfコマンドで 'postgresql-server' をインストールすると、PostgreSQL 13のサーバとクライアントプログラム、および依存関係のあるライブラリがインストールされます。
sudo dnf install postgresql-server
以下の例は、実際にインストールされるパッケージを示しています。
[admin@host1 ~]$ [admin@host1 ~]$ sudo dnf install postgresql-server
AlmaLinux 9 - AppStream 452 kB/s | 8.3 MB 00:18
AlmaLinux 9 - BaseOS 497 kB/s | 3.5 MB 00:07
AlmaLinux 9 - Extras 21 kB/s | 17 kB 00:00
依存関係が解決しました。
================================================================================
パッケージ Arch バージョン リポジトリー サイズ
================================================================================
インストール:
postgresql-server x86_64 13.14-1.el9_3 appstream 5.7 M
依存関係のインストール:
postgresql x86_64 13.14-1.el9_3 appstream 1.5 M
postgresql-private-libs x86_64 13.14-1.el9_3 appstream 132 k
トランザクションの概要
================================================================================
インストール 3 パッケージ
なお、PostgreSQLの別のバージョンをインストールする方法については、以下の公式サイトを参照してください。
Linux downloads (Red Hat family)
(3) データベースクラスタの初期化
インストールが完了したらデータベースクラスタを初期化します。データベースクラスタとはPostgreSQLサーバが管理するデータベースの格納エリアで、サーバの起動前に初期化しておく必要があります。以下のコマンドを実行することにより、postgresユーザの権限でデータベースクラスタを初期化します。
sudo -u postgres postgresql-setup --initdb
以下の例のように、データベースクラスタは '/var/lib/pgsql/data' ディレクトリにpostgresqlユーザ所有のファイルとして作成されます。
[admin@host1 ~]$ sudo -u postgres postgresql-setup --initdb
* Initializing database in '/var/lib/pgsql/data'
* Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log
[admin@host1 ~]$
(4) データベースサーバの起動
PostgreSQLインストール後の初期設定ができたので、systemctlコマンドでデータベースサーバを起動します。
sudo systemctl start postgresql
サーバの起動状態は、以下のコマンドで確認できます。
sudo systemctl status postgresql
以下の例のように、サーバの状態が Active: active (running) になっていればサーバの起動は成功です。
[admin@host1 ~]$ sudo systemctl status postgresql
● postgresql.service - PostgreSQL database server
Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; pres>
Active: active (running) since Tue 2024-05-14 14:37:02 JST; 10s ago
Process: 33963 ExecStartPre=/usr/libexec/postgresql-check-db-dir postgresql>
Main PID: 33965 (postmaster)
以下省略
なお、以下のコマンドを実行しておくと、OSを再起動したときにデータベースサーバを自動的に再起動できます。
sudo systemctl enable postgresql