第1章の動作確認
サイト: | LinuC Open Network |
コース: | 井上先生用コース |
ブック: | 第1章の動作確認 |
印刷者: | ゲストユーザ |
日付: | 2024年 09月 17日(火曜日) 05:09 |
説明
AlmaLinux 9またはUbuntu 24にPostgreSQLをインストールして、実習環境を正しく構築できていることを確認します。
1.1 PostgreSQLのインストールと初期設定(AlmaLinuxの場合)
以下を確認します。なお、OS管理者権限(sudoコマンド)を行使できるadminユーザでログインして実行します。
- postgresユーザを作成する
- postgresqlをインストールし、サーバを起動する
postgresユーザの作成
login as: admin
admin@localhost's password: ※adminユーザのパスワードを入力
Last login: Tue May 14 14:23:59 2024 from 10.0.2.2
[admin@host1 ~]$ sudo useradd postgres
[sudo] admin のパスワード: ※adminユーザのパスワードを入力
[admin@host1 ~]$ sudo passwd postgres
ユーザー postgres のパスワードを変更。
新しい パスワード: ※postgresユーザに設定するパスワードを入力
正しくないパスワード: このパスワードは 8 文字未満の文字列です
新しい パスワードを再入力してください: ※postgresユーザのパスワードを再入力
passwd: すべての認証トークンが正しく更新できました。
[admin@host1 ~]$ sudo -iu postgres ※次に表示されるプロンプトがpostgres@に変わることを確認
[postgres@host1 ~]$ pwd ※カレントディレクトリが/home/postgresであることを確認
/home/postgres
[postgres@host1 ~]$ exit ※postgresユーザからログアウトすることを確認
ログアウト
[admin@host1 ~]$
postgresユーザに設定するパスワードの強度が弱い場合に「正しくないパスワード」と表示されることがありますが、それに構わず同じパスワードを再入力すればパスワードの設定が成功します。なお、postgresユーザのパスワードを設定しなくても、sudo -iu postgres コマンドでpostgresユーザにログインできれば問題ありません。
postgresqlのインストールとサーバの起動
[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 パッケージ
ダウンロードサイズの合計: 7.4 M
インストール後のサイズ: 29 M
これでよろしいですか? [y/N]: y ※インストールされるパッケージを確認して y を入力
パッケージのダウンロード:
(1/3): postgresql-private-libs-13.14-1.el9_3.x8 999 kB/s | 132 kB 00:00
(2/3): postgresql-13.14-1.el9_3.x86_64.rpm 948 kB/s | 1.5 MB 00:01
(3/3): postgresql-server-13.14-1.el9_3.x86_64.r 1.2 MB/s | 5.7 MB 00:04
--------------------------------------------------------------------------------
合計 1.3 MB/s | 7.4 MB 00:05
AlmaLinux 9 - AppStream 3.0 MB/s | 3.1 kB 00:00
GPG 鍵 0xB86B3716 をインポート中:
Userid : "AlmaLinux OS 9 "
Fingerprint: BF18 AC28 7617 8908 D6E7 1267 D36C B86C B86B 3716
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9
これでよろしいですか? [y/N]: y ※GPG鍵のインポートを確認して y を入力
鍵のインポートに成功しました
トランザクションを確認しています
トランザクションの確認に成功しました。
トランザクションをテストしています
トランザクションのテストに成功しました。
トランザクションを実行しています
準備中 : 1/1
インストール中 : postgresql-private-libs-13.14-1.el9_3.x86_64 1/3
インストール中 : postgresql-13.14-1.el9_3.x86_64 2/3
scriptletの実行中: postgresql-server-13.14-1.el9_3.x86_64 3/3
インストール中 : postgresql-server-13.14-1.el9_3.x86_64 3/3
scriptletの実行中: postgresql-server-13.14-1.el9_3.x86_64 3/3
検証中 : postgresql-13.14-1.el9_3.x86_64 1/3
検証中 : postgresql-private-libs-13.14-1.el9_3.x86_64 2/3
検証中 : postgresql-server-13.14-1.el9_3.x86_64 3/3
インストール済み:
postgresql-13.14-1.el9_3.x86_64
postgresql-private-libs-13.14-1.el9_3.x86_64
postgresql-server-13.14-1.el9_3.x86_64
完了しました!
[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 ~]$ sudo ls /var/lib/pgsql/data ※データベースクラスタの内容を確認
PG_VERSION pg_dynshmem pg_notify pg_stat_tmp pg_xact
base pg_hba.conf pg_replslot pg_subtrans postgresql.auto.conf
global pg_ident.conf pg_serial pg_tblspc postgresql.conf
log pg_logical pg_snapshots pg_twophase
pg_commit_ts pg_multixact pg_stat pg_wal
[admin@host1 ~]$ sudo systemctl start postgresql ※データベースサーバの起動
[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 ※active (running)を確認
Process: 33963 ExecStartPre=/usr/libexec/postgresql-check-db-dir postgresql>
Main PID: 33965 (postmaster)
Tasks: 8 (limit: 10864)
Memory: 16.5M
CPU: 40ms
CGroup: /system.slice/postgresql.service
├─33965 /usr/bin/postmaster -D /var/lib/pgsql/data
├─33966 "postgres: logger "
├─33968 "postgres: checkpointer "
├─33969 "postgres: background writer "
├─33970 "postgres: walwriter "
├─33971 "postgres: autovacuum launcher "
├─33972 "postgres: stats collector "
└─33973 "postgres: logical replication launcher "
5月 14 14:37:02 host1.example1 systemd[1]: Starting PostgreSQL database server>
5月 14 14:37:02 host1.example1 postmaster[33965]: 2024-05-14 14:37:02.470 JST >
5月 14 14:37:02 host1.example1 postmaster[33965]: 2024-05-14 14:37:02.470 JST >
5月 14 14:37:02 host1.example1 systemd[1]: Started PostgreSQL database server.
[admin@host1 ~]$ sudo systemctl enable postgresql ※データベースサーバの自動起動の設定
Created symlink /etc/systemd/system/multi-user.target.wants/postgresql.service → /usr/lib/systemd/system/postgresql.service.
[admin@host1 ~]$
これ以降、原則としてpostgresqlサーバは常時起動させておいてください。また、何らかの理由により起動中のpostgresqlサーバを停止させたい場合は、adminユーザで sudo systemctl stop postgresql を入力してください。
1.2 PostgreSQLのインストールと初期設定(Ubuntuの場合)
以下を確認します。なお、OS管理者権限(sudoコマンド)を行使できるubuntuユーザでログインして実行します。
- postgresユーザを作成する
- postgresqlをインストールし、サーバを起動する
postgresユーザの作成
login as: ubuntu
ubuntu@localhost's password:
Welcome to Ubuntu 24.04 LTS (GNU/Linux 6.8.0-40-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro
System information as of 2024年 8月 8日 木曜日 21:46:23 JST
System load: 0.8 Processes: 101
Usage of /: 41.1% of 11.21GB Users logged in: 0
Memory usage: 8% IPv4 address for enp0s3: 10.0.2.15
Swap usage: 0%
Expanded Security Maintenance for Applications is not enabled.
0のアップデートはすぐに適用されます。
Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status
Last login: Thu Aug 8 21:30:06 2024 from 10.0.2.2
ubuntu@host1:~$ sudo adduser postgres
[sudo] ubuntu のパスワード: ※ubuntuユーザのパスワードを入力
info: ユーザ `postgres' を追加しています...
info: Selecting UID/GID from range 1000 to 59999 ...
info: 新しいグループ `postgres' (1001) を追加しています...
info: Adding new user `postgres' (1001) with group `postgres (1001)' ...
info: ホームディレクトリ `/home/postgres' を作成しています...
info: `/etc/skel' からファイルをコピーしています...
新しいパスワード: ※postgresユーザに設定するパスワードを入力
新しいパスワードを再入力してください: ※postgresユーザのパスワードを再入力
passwd: パスワードは正しく更新されました
postgres のユーザ情報を変更中
新しい値を入力してください。標準設定値を使うならリターンを押してください
フルネーム []:
部屋番号 []:
職場電話番号 []:
自宅電話番号 []:
その他 []:
以上で正しいですか? [Y/n] y
info: Adding new user `postgres' to supplemental / extra groups `users' ...
info: ユーザ `postgres' をグループ `users' に追加しています...
ubuntu@host1:~$ sudo -iu postgres ※次に表示されるプロンプトがpostgres@に変わることを確認
postgres@host1:~$ pwd ※カレントディレクトリが/home/postgresであることを確認
/home/postgres
postgres@host1:~$ exit ※postgresユーザからログアウトすることを確認
ログアウト
ubuntu@host1:~$
postgresユーザの情報は、OSの標準設定値で問題ありません。
postgresqlのインストールとサーバの起動
ubuntu@host1:~$ sudo apt install postgresql
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
libcommon-sense-perl libjson-perl libjson-xs-perl libllvm17t64 libpq5
libtypes-serialiser-perl postgresql-16 postgresql-client-16
postgresql-client-common postgresql-common ssl-cert
提案パッケージ:
postgresql-doc postgresql-doc-16
以下のパッケージが新たにインストールされます:
libcommon-sense-perl libjson-perl libjson-xs-perl libllvm17t64 libpq5
libtypes-serialiser-perl postgresql postgresql-16 postgresql-client-16
postgresql-client-common postgresql-common ssl-cert
アップグレード: 0 個、新規インストール: 12 個、削除: 0 個、保留: 0 個。
43.5 MB のアーカイブを取得する必要があります。
この操作後に追加で 175 MB のディスク容量が消費されます。
続行しますか? [Y/n] y ※インストールされるパッケージを確認して y を入力
取得:1 http://jp.archive.ubuntu.com/ubuntu noble/main amd64 libjson-perl all 4.10000-1 [81.9 kB]
取得:2 http://jp.archive.ubuntu.com/ubuntu noble/main amd64 postgresql-client-common all 257build1 [36.3 kB]
取得:3 http://jp.archive.ubuntu.com/ubuntu noble/main amd64 ssl-cert all 1.1.2ubuntu1 [17.8 kB]
取得:4 http://jp.archive.ubuntu.com/ubuntu noble/main amd64 postgresql-common all 257build1 [161 kB]
取得:5 http://jp.archive.ubuntu.com/ubuntu noble/main amd64 libcommon-sense-perl amd64 3.75-3build3 [20.4 kB]
取得:6 http://jp.archive.ubuntu.com/ubuntu noble/main amd64 libtypes-serialiser-perl all 1.01-1 [11.6 kB]
取得:7 http://jp.archive.ubuntu.com/ubuntu noble/main amd64 libjson-xs-perl amd64 4.030-2build3 [83.6 kB]
取得:8 http://jp.archive.ubuntu.com/ubuntu noble/main amd64 libllvm17t64 amd64 1:17.0.6-9ubuntu1 [26.2 MB]
取得:9 http://jp.archive.ubuntu.com/ubuntu noble-updates/main amd64 libpq5 amd64 16.3-0ubuntu0.24.04.1 [141 kB]
取得:10 http://jp.archive.ubuntu.com/ubuntu noble-updates/main amd64 postgresql-client-16 amd64 16.3-0ubuntu0.24.04.1 [1,269 kB]
取得:11 http://jp.archive.ubuntu.com/ubuntu noble-updates/main amd64 postgresql-16 amd64 16.3-0ubuntu0.24.04.1 [15.5 MB]
取得:12 http://jp.archive.ubuntu.com/ubuntu noble/main amd64 postgresql all 16+257build1 [11.5 kB]
43.5 MB を 6秒 で取得しました (7,224 kB/s)
パッケージを事前設定しています ...
以前に未選択のパッケージ libjson-perl を選択しています。
(データベースを読み込んでいます ... 現在 121579 個のファイルとディレクトリがインストールされています。)
.../00-libjson-perl_4.10000-1_all.deb を展開する準備をしています ...
libjson-perl (4.10000-1) を展開しています...
以前に未選択のパッケージ postgresql-client-common を選択しています。
.../01-postgresql-client-common_257build1_all.deb を展開する準備をしています ...
postgresql-client-common (257build1) を展開しています...
以前に未選択のパッケージ ssl-cert を選択しています。
.../02-ssl-cert_1.1.2ubuntu1_all.deb を展開する準備をしています ...
ssl-cert (1.1.2ubuntu1) を展開しています...
以前に未選択のパッケージ postgresql-common を選択しています。
.../03-postgresql-common_257build1_all.deb を展開する準備をしています ...
'postgresql-common による /usr/bin/pg_config から /usr/bin/pg_config.libpq-dev への退避 (divert)' を追加しています
postgresql-common (257build1) を展開しています...
以前に未選択のパッケージ libcommon-sense-perl:amd64 を選択しています。
.../04-libcommon-sense-perl_3.75-3build3_amd64.deb を展開する準備をしています ...
libcommon-sense-perl:amd64 (3.75-3build3) を展開しています...
以前に未選択のパッケージ libtypes-serialiser-perl を選択しています。
.../05-libtypes-serialiser-perl_1.01-1_all.deb を展開する準備をしています ...
libtypes-serialiser-perl (1.01-1) を展開しています...
以前に未選択のパッケージ libjson-xs-perl を選択しています。
.../06-libjson-xs-perl_4.030-2build3_amd64.deb を展開する準備をしています ...
libjson-xs-perl (4.030-2build3) を展開しています...
以前に未選択のパッケージ libllvm17t64:amd64 を選択しています。
.../07-libllvm17t64_1%3a17.0.6-9ubuntu1_amd64.deb を展開する準備をしています ...
libllvm17t64:amd64 (1:17.0.6-9ubuntu1) を展開しています...
以前に未選択のパッケージ libpq5:amd64 を選択しています。
.../08-libpq5_16.3-0ubuntu0.24.04.1_amd64.deb を展開する準備をしています ...
libpq5:amd64 (16.3-0ubuntu0.24.04.1) を展開しています...
以前に未選択のパッケージ postgresql-client-16 を選択しています。
.../09-postgresql-client-16_16.3-0ubuntu0.24.04.1_amd64.deb を展開する準備をしています ...
postgresql-client-16 (16.3-0ubuntu0.24.04.1) を展開しています...
以前に未選択のパッケージ postgresql-16 を選択しています。
.../10-postgresql-16_16.3-0ubuntu0.24.04.1_amd64.deb を展開する準備をしています ...
postgresql-16 (16.3-0ubuntu0.24.04.1) を展開しています...
以前に未選択のパッケージ postgresql を選択しています。
.../11-postgresql_16+257build1_all.deb を展開する準備をしています ...
postgresql (16+257build1) を展開しています...
postgresql-client-common (257build1) を設定しています ...
libpq5:amd64 (16.3-0ubuntu0.24.04.1) を設定しています ...
libcommon-sense-perl:amd64 (3.75-3build3) を設定しています ...
libllvm17t64:amd64 (1:17.0.6-9ubuntu1) を設定しています ...
ssl-cert (1.1.2ubuntu1) を設定しています ...
Created symlink /etc/systemd/system/multi-user.target.wants/ssl-cert.service → /usr/lib/systemd/system/ssl-cert.service.
libtypes-serialiser-perl (1.01-1) を設定しています ...
libjson-perl (4.10000-1) を設定しています ...
libjson-xs-perl (4.030-2build3) を設定しています ...
postgresql-client-16 (16.3-0ubuntu0.24.04.1) を設定しています ...
update-alternatives: /usr/share/man/man1/psql.1.gz (psql.1.gz) を提供するために自動モードで /usr/share/postgresql/16/man/man1/psql.1.gz を使います
postgresql-common (257build1) を設定しています ...
Creating config file /etc/postgresql-common/createcluster.conf with new version
Building PostgreSQL dictionaries from installed myspell/hunspell packages...
Removing obsolete dictionary files:
Created symlink /etc/systemd/system/multi-user.target.wants/postgresql.service → /usr/lib/systemd/system/postgresql.service.
postgresql-16 (16.3-0ubuntu0.24.04.1) を設定しています ...
Creating new PostgreSQL cluster 16/main ...
/usr/lib/postgresql/16/bin/initdb -D /var/lib/postgresql/16/main --auth-local peer --auth-host scram-sha-256 --no-instructions
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
The database cluster will be initialized with locale "ja_JP.UTF-8".
The default database encoding has accordingly been set to "UTF8".
initdb: could not find suitable text search configuration for locale "ja_JP.UTF-8"
The default text search configuration will be set to "simple".
Data page checksums are disabled.
fixing permissions on existing directory /var/lib/postgresql/16/main ... ok ※データベースクラスタの場所
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... Asia/Tokyo
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok
postgresql (16+257build1) を設定しています ...
man-db (2.12.0-4build2) のトリガを処理しています ...
libc-bin (2.39-0ubuntu8.2) のトリガを処理しています ...
Scanning processes...
Scanning linux images...
Running kernel seems to be up-to-date.
No services need to be restarted.
No containers need to be restarted.
No user sessions are running outdated binaries.
No VM guests are running outdated hypervisor (qemu) binaries on this host.
ubuntu@host1:~$ sudo ls /var/lib/postgresql/16/main ※データベースクラスタの内容を確認
PG_VERSION pg_logical pg_snapshots pg_twophase postmaster.pid
base pg_multixact pg_stat pg_wal
global pg_notify pg_stat_tmp pg_xact
pg_commit_ts pg_replslot pg_subtrans postgresql.auto.conf
pg_dynshmem pg_serial pg_tblspc postmaster.opts
ubuntu@host1:~$ sudo systemctl status postgresql ※データベースサーバの状態を確認
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; prese>
Active: active (exited) since Thu 2024-08-08 21:53:49 JST; 1min 7s ago
Main PID: 2378 (code=exited, status=0/SUCCESS)
CPU: 1ms
8月 08 21:53:49 host1 systemd[1]: Starting postgresql.service - PostgreSQL RDB>
8月 08 21:53:49 host1 systemd[1]: Finished postgresql.service - PostgreSQL RDB>
ubuntu@host1:~$
これ以降、原則としてpostgresqlサーバは常時起動させておいてください。また、何らかの理由により起動中のpostgresqlサーバを停止させたい場合は、ubuntuユーザで sudo systemctl stop postgresql を入力してください。
1.3 実習用データベースの作成
以下を確認します。なお、前節で作成したpostgresユーザで実行します。
- データベースを作成する
- psqlクライアントを使用する
データベースの作成
[admin@host1 ~]$ sudo -iu postgres
[sudo] admin のパスワード: ※adminユーザのパスワードを入力
[postgres@host1 ~]$ createdb ossdb ※ossdbを作成
ossdbデータベースが作成できたことは、次のpsqlクライアントで確認します。
psqlクライアント
[postgres@host1 ~]$ psql ossdb
psql (13.14)
"help"でヘルプを表示します。
ossdb=# help ※とりあえずhelpを入力
PostgreSQL へのコマンド ライン インターフェイス、psql を使用しています。
ヒント: \copyright とタイプすると、配布条件を表示します。
\h とタイプすると、SQLコマンドのヘルプを表示します。
\? とタイプすると、psqlコマンドのヘルプを表示します。
\g と打つかセミコロンで閉じると、問い合わせを実行します。
\q で終了します。
ossdb=# \conninfo ※現在の接続情報を確認
データベース"ossdb"にユーザ"postgres"として、"/var/run/postgresql"のソケットを介してポート"5432"で接続しています。
ossdb=# \l ※データベース一覧を表示
データベース一覧
名前 | 所有者 | エンコーディング | 照合順序 | Ctype(変換演算子) |
アクセス権限
-----------+----------+------------------+-------------+-------------------+----
-------------------
ossdb | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 |
postgres | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 |
template0 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/
postgres +
| | | | | pos
tgres=CTc/postgres
template1 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/
postgres +
| | | | | pos
tgres=CTc/postgres
(4 行)
ossdb=# \q ※psqlを終了
[postgres@host1 ~]$
データベース一覧に、ossdb, postgres, template0, template1 の4つのデータベースがあることを確認してください。