3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ubuntu 22.04 に PostgreSQL 14をインストール

Last updated at Posted at 2024-03-31

PostgreSQL 14のインストール Ubuntu 22.04編

PostgreSQL 14のインストール

以下のコマンドでインストール

$ sudo apt install postgresql postgresql-contrib

systemctl コマンドで、PostgreSQL サービスが動いているか確認

$ systemctl status postgresql.service
● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: active (exited) since Sun 2024-03-24 21:39:22 JST; 8min ago
    Process: 8372 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
   Main PID: 8372 (code=exited, status=0/SUCCESS)
        CPU: 2ms

 3月 24 21:39:22 taka-X202E systemd[1]: Starting PostgreSQL RDBMS...
 3月 24 21:39:22 taka-X202E systemd[1]: Finished PostgreSQL RDBMS.

postgres ユーザーのパスワードの変更

インストールするとデータベースの管理ユーザーとして、ユーザー postgresが作成されています。postgres ユーザーを利用できるようにするため、ユーザー postgresのパスワードを変更します。

$ sudo passwd postgres

PostgreSQL 14の動作確認

インストールが完了すると他のOSではインストール後に行うデータベースクラスタの作成が、Ubuntuだと、インストール時点で作成されています。

postgresql ユーザーになり、psql コマンドで データベースに接続します。

su コマンドで一時的に postgresql になります。

$ su - postgres
パスワード: 
postgres@:~$

psql コマンドで データベースに接続します。

postgres@:~$ psql 
psql (14.11 (Ubuntu 14.11-0ubuntu0.22.04.1))
Type "help" for help.
postgres=#

SHOW コマンドで data_directory パラメータの値を確認。

postgres=# SHOW data_directory;
       data_directory        
-----------------------------
 /var/lib/postgresql/14/main
(1 row)

\l コマンドでデータベースの一覧を表示。

postgres=# \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | ja_JP.UTF-8 | ja_JP.UTF-8 | 
 template0 | postgres | UTF8     | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(3 rows)

もう一度、データベースクラスタの動作確認

Ubuntu版のPostgreSQLは、複数のデータベースクラスタが動作するように各種コマンドが設計されているようです。

先程、systemctl で指定した postgresql.service は、複数のデータベースクラスタを管理するように設計されていて、個々のデータベースクラスタの状態を表示してはくれないようです。インストール時に作成されたデータベースクラスタの起動状態を表示する場合は、postgresql@14-main.service と指定するようです。

postgres@:~$ systemctl status postgresql@14-main.service
● postgresql@14-main.service - PostgreSQL Cluster 14-main
     Loaded: loaded (/lib/systemd/system/postgresql@.service; enabled-runtime; vendor preset: enabled)
     Active: active (running) since Sun 2024-04-07 16:57:06 JST; 2 days ago
   Main PID: 871 (postgres)
      Tasks: 7 (limit: 4458)
     Memory: 11.6M
        CPU: 17.661s
     CGroup: /system.slice/system-postgresql.slice/postgresql@14-main.service
             ├─871 /usr/lib/postgresql/14/bin/postgres -D /var/lib/postgresql/14/main -c config_file=/etc/postgresql/14/main/postgresql.conf
             ├─898 "postgres: 14/main: checkpointer " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" >
             ├─899 "postgres: 14/main: background writer " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ">
             ├─900 "postgres: 14/main: walwriter " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" >
             ├─901 "postgres: 14/main: autovacuum launcher " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "">
             ├─903 "postgres: 14/main: stats collector " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" >
             └─904 "postgres: 14/main: logical replication launcher " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "">

PL/Tcl, PL/Python3 のインストール

PL/Tclを使いたい場合、標準パッケージに格納されていないので、追加にインストールします。以下のコマンドでインストールできるはずだったのですが、

$ sudo apt install postgresql-pltcl-14

実際に試したところ、以下のエラーとなりました

$ sudo apt install postgresql-pltcl-14
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
E: パッケージ postgresql-pltcl-14 が見つかりません

そのため、Ubuntuの公式リポジトリpostgresql14関連が格納されている場所からpostgresql-pltcl-14_14.13-0ubuntu0.22.04.1_amd64.debをダウンロードして、ダウンロードしたファイルをインストール

# sudo apt install ./postgresql-pltcl-14_14.13-0ubuntu0.22.04.1_amd64.deb 

同様にPL/Python3も postgresql-plpython3-14_14.13-0ubuntu0.22.04.1_amd64.debをダウンロードして、ダウンロードしたファイルをインストール

# sudo apt install ./postgresql-plpython3-14_14.13-0ubuntu0.22.04.1_amd64.deb 

PL/Tclを及び、PL/Python3を有効化するために plsql から以下のSQLコマンドを実施

postgres=# CREATE EXTENSION pltcl;
postgres=# CREATE EXTENSION plpython3u;

参考情報

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?