Raspbian busterにPostgreSQLをインストール †
本記事では、ラズベリーパイのRaspbian busterにPostgreSQLをインストールし、
ユーザ追加、データベース作成、SQLを実行までの記事になります。
スポンサーリンク
関連記事 †
使用した環境 †
PostgreSQLパッケージをインストールする †
LXTerminal を使って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の動作確認 †
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をいくつか発行してみます。
- postgresユーザにスイッチします。
上記ですでにpostgresユーザにスイッチしている場合は本操作は不要です。
sudo -i -u postgres
ユーザ(ロール名)の追加・createuser †
- ユーザを追加しパスワードを設定します。
createuser --interactive -P
オプション--interactiveと-Pを--helpオプションで確認するとパスワードを割り当てるとなっています。
$ createuser --help
<snip>
-P, --pwprompt ロールに対してパスワードを割り当てる
<snip>
--interactive デフォルト値を使わずに、無指定のロール名や属性の入力を要求する
<snip>
実際にユーザ追加を行ったときの出力です。
$ createuser --interactive -P
追加したいロール名を入力:sakura
新しいロールのためのパスワード:
もう一度入力してください:
新しいロールをスーパーユーザにしますか? (y/n)y
$
ユーザ(ロール名)が sakura 、スーパーユーザとして作成しました。
データーベースの作成・createdb †
作成したユーザ(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に接続しテーブルを作成 †
作成した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をしてみる †
上記でテーブルを作成しました。
以下はそのテーブルに対し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をインストールし簡単な動作確認を実施するまでの資料でした。
スポンサーリンク