Raspbian busterにPostgreSQLをインストール

本記事では、ラズベリーパイのRaspbian busterにPostgreSQLをインストールし、
ユーザ追加、データベース作成、SQLを実行までの記事になります。


スポンサーリンク

使用した環境

PostgreSQLパッケージをインストールする

LXTerminal t.png を使ってaptコマンドでPostgreSQLをインストール手順になります。

  1. PostgreSQLパッケージインストール前に以下のコマンドを実行しアップデートを実施します。
    sudo apt update
    sudo apt -y upgrade
  2. PostgreSQLパッケージを以下のコマンドを実行しインストールします。
    sudo apt install postgresql -y
    ちなみにインストールするpostgresqlパッケージの情報は以下の通りです。
    apt showコマンドで確認することができます。
    パッケージのPostgreSQLバージョンが11であることが確認できますね。
    $ apt show postgresql
    
    Package: postgresql
    Version: 11+200+deb10u1
    Priority: optional
    Section: database
    Source: postgresql-common (200+deb10u1)
    Maintainer: Debian PostgreSQL Maintainers <team+postgresql@tracker.debian.org>
    Installed-Size: 65.5 kB
    Depends: postgresql-11
    Suggests: postgresql-doc
    Tag: devel::lang:sql, interface::daemon, network::server, network::service,
     role::metapackage, role::program, suite::postgresql, works-with::db
    Download-Size: 60.4 kB
    APT-Sources: http://ftp.jaist.ac.jp/raspbian buster/main armhf Packages
    Description: object-relational SQL database (supported version)
     This metapackage always depends on the currently supported PostgreSQL
     database server version.
     .
     PostgreSQL is a fully featured object-relational database management
     system.  It supports a large part of the SQL standard and is designed
     to be extensible by users in many aspects.  Some of the features are:
     ACID transactions, foreign keys, views, sequences, subqueries,
     triggers, user-defined types and functions, outer joins, multiversion
     concurrency control.  Graphical user interfaces and bindings for many
     programming languages are available as well.
  3. インストール中のメッセージは以下の通りです。
    プロンプト($)が戻ってくればPostgreSQLのインストールは完了です。
    $ sudo apt install postgresql -y
    パッケージリストを読み込んでいます... 完了
    依存関係ツリーを作成しています                
    状態情報を読み取っています... 完了
    以下の追加パッケージがインストールされます:
      libllvm7 postgresql-11 postgresql-client-11 postgresql-client-common
      postgresql-common sysstat
    提案パッケージ:
      postgresql-doc postgresql-doc-11 libjson-perl isag
    以下のパッケージが新たにインストールされます:
      libllvm7 postgresql postgresql-11 postgresql-client-11
      postgresql-client-common postgresql-common sysstat
    アップグレード: 0 個、新規インストール: 7 個、削除: 0 個、保留: 0 個。
    26.7 MB のアーカイブを取得する必要があります。
    この操作後に追加で 104 MB のディスク容量が消費されます。
    取得:1 http://ftp.jaist.ac.jp/raspbian buster/main armhf libllvm7 armhf 1:7.0.1 -8+rpi2 [11.4 MB]
    <省略>

PostgreSQLの動作確認

postgresユーザにスイッチし、version()関数を実行した結果です。
PostgreSQLへの接続、SQLの発行が正常に動作していることが確認できました。

$ sudo -i -u postgres
postgres@raspi3p:~$ psql
psql (11.4 (Raspbian 11.4-1))
"help" でヘルプを表示します。

postgres=# select version();
                                                         version                                                         
-------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 11.4 (Raspbian 11.4-1) on arm-unknown-linux-gnueabihf, compiled by gcc 
(Raspbian 8.3.0-6+rpi1) 8.3.0, 32-bit
(1 行)

postgres=# \q

ユーザ追加、データベース作成、テーブル作成、SQL発行

ユーザを追加し、SQLをいくつか発行してみます。

  1. postgresユーザにスイッチします。
    上記ですでにpostgresユーザにスイッチしている場合は本操作は不要です。
    sudo -i -u postgres

ユーザ(ロール名)の追加・createuser

  1. ユーザを追加しパスワードを設定します。
    createuser --interactive -P
    オプション--interactiveと-Pを--helpオプションで確認するとパスワードを割り当てるとなっています。
    $ createuser --help
    <snip>
    -P, --pwprompt            ロールに対してパスワードを割り当てる
    <snip>
    --interactive             デフォルト値を使わずに、無指定のロール名や属性の入力を要求する
    <snip>
    実際にユーザ追加を行ったときの出力です。
    $ createuser --interactive -P
    追加したいロール名を入力:sakura
    新しいロールのためのパスワード: 
    もう一度入力してください:
    新しいロールをスーパーユーザにしますか? (y/n)y
    $
    ユーザ(ロール名)が sakura 、スーパーユーザとして作成しました。

データーベースの作成・createdb

作成したユーザ(sakura)でデータベースを作成します。

  1. sakuradbデータベースをcreatedbコマンドを使って作成します。
    createdb --owner=sakura sakuradb
  2. psqlコマンドでデータベース(sakuradb)が作成されているか確認します。
    psql -l
    実際にcreatedbコマンドを実行し、データーベースが作成されているか確認したときの出力になります。
    postgres@raspi3p:~$ createdb --owner=sakura sakuradb 
    postgres@raspi3p:~$ psql -l
                                             データベース一覧
       名前    |  所有者  | エンコーディング |  照合順序   | Ctype(変換演算子) |     アクセス権限      
    -----------+----------+------------------+-------------+-------------------+-----------------------
     postgres  | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | 
     sakuradb  | sakura   | 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
    (4 行)

作成したユーザ(ロール名)でPostgreSQLに接続しテーブルを作成

作成したsakuraでsakuradbにログインし、テーブルを作成するまでの手順です。

  1. psqlコマンドでデータベースに接続
    psql -U ユーザ名 -h ホスト名 データベース名
    実際に接続したときの出力です。
    $ psql -U sakura -h localhost sakuradb
    ユーザ sakura のパスワード: 
    psql (11.4 (Raspbian 11.4-1))
    SSL 接続 (プロトコル: TLSv1.3、暗号化方式: TLS_AES_256_GCM_SHA384、ビット長: 256、圧縮: オフ)
    "help" でヘルプを表示します。
  2. テーブルを作成します。
    sakuradb=# create table pi ( id serial not null, type varchar(32) );
    CREATE TABLE
    sakuradb=# \d pi
                                       テーブル "public.pi"
      列  |          型           | 照合順序 | Null 値を許容 |           デフォルト           
    ------+-----------------------+----------+---------------+--------------------------------
     id   | integer               |          | not null      | nextval('pi_id_seq'::regclass)
     type | character varying(32) |          |               | 

INSERT, SELECTをしてみる

上記でテーブルを作成しました。
以下はそのテーブルに対しINSERTとSELECTを実施してみます。

sakuradb=# insert into pi(type) values ('RaspberryPi1'),('RaspberryPi2'),('RaspberryPi3');
INSERT 0 3
sakuradb=# select * from pi;
 id |     type     
----+--------------
  1 | RaspberryPi1
  2 | RaspberryPi2
  3 | RaspberryPi3
(3 行)

以上、ラズパイ(Raspbian buster)にPostgreSQLをインストールし簡単な動作確認を実施するまでの資料でした。


スポンサーリンク

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS