#author("2019-07-24T22:47:22+09:00","","")
#navi(../)


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

#htmlinsert(minipc-top.html)
#contents

* 使用した環境 [#e5c35638]
-Raspberry Pi 3B+~
[[Raspberry Pi(Amazonへのリンク)>https://amzn.to/2IIrAhM]]
- Raspbian OS
 $ lsb_release -dr
 Description:	Raspbian GNU/Linux 10 (buster)

* PostgreSQLパッケージをインストールする [#i68c5a05]
LXTerminal &ref(t.png); を使ってaptコマンドでPostgreSQLをインストール手順になります。
+ PostgreSQLパッケージインストール前に以下のコマンドを実行しアップデートを実施します。
 sudo apt update
 sudo apt -y upgrade
+ 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.
+インストール中のメッセージは以下の通りです。~
プロンプト($)が戻ってくれば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の動作確認 [#a436693f]
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発行 [#ia254896]
ユーザを追加し、SQLをいくつか発行してみます。~
+ postgresユーザにスイッチします。~
上記ですでにpostgresユーザにスイッチしている場合は本操作は不要です。
 sudo -i -u postgres
** ユーザ(ロール名)の追加・createuser [#if1a45ec]
+ ユーザを追加しパスワードを設定します。~
 createuser --interactive -P
オプション--interactiveと-Pを--helpオプションで確認するとパスワードを割り当てるとなっています。
 $ createuser --help
 <snip>
 -P, --pwprompt            ロールに対してパスワードを割り当てる
 <snip>
 --interactive             デフォルト値を使わずに、無指定のロール名や属性の入力を要求する
 <snip>
実際にユーザ追加を行ったときの出力です。
 $ createuser --interactive -P
 追加したいロール名を入力:sakura
 新しいロールのためのパスワード: 
 もう一度入力してください:
 新しいロールをスーパーユーザにしますか? (y/n)y
 $
ユーザ(ロール名)が sakura 、スーパーユーザとして作成しました。

** データーベースの作成・createdb [#ye807513]
作成したユーザ(sakura)でデータベースを作成します。
+ sakuradbデータベースをcreatedbコマンドを使って作成します。
 createdb --owner=sakura sakuradb
+ 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に接続しテーブルを作成 [#dc5432e7]
作成したsakuraでsakuradbにログインし、テーブルを作成するまでの手順です。
+ 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" でヘルプを表示します。
+テーブルを作成します。
 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をしてみる [#g938eec1]
上記でテーブルを作成しました。~
以下はそのテーブルに対し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をインストールし簡単な動作確認を実施するまでの資料でした。

#htmlinsert(minipc-btm.html)

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