本記事では、ラズベリーパイのRaspbian busterにPostgreSQLをインストールし、
ユーザ追加、データベース作成、SQLを実行までの記事になります。
$ lsb_release -dr Description: Raspbian GNU/Linux 10 (buster)
LXTerminal を使ってaptコマンドでPostgreSQLをインストール手順になります。
sudo apt update sudo apt -y upgrade
sudo apt install postgresql -yちなみにインストールするpostgresqlパッケージの情報は以下の通りです。
$ 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.
$ 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] <省略>
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をいくつか発行してみます。
sudo -i -u postgres
createuser --interactive -Pオプション--interactiveと-Pを--helpオプションで確認するとパスワードを割り当てるとなっています。
$ createuser --help <snip> -P, --pwprompt ロールに対してパスワードを割り当てる <snip> --interactive デフォルト値を使わずに、無指定のロール名や属性の入力を要求する <snip>実際にユーザ追加を行ったときの出力です。
$ createuser --interactive -P 追加したいロール名を入力:sakura 新しいロールのためのパスワード: もう一度入力してください: 新しいロールをスーパーユーザにしますか? (y/n)y $ユーザ(ロール名)が sakura 、スーパーユーザとして作成しました。
作成したユーザ(sakura)でデータベースを作成します。
createdb --owner=sakura 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 行)
作成したsakuraでsakuradbにログインし、テーブルを作成するまでの手順です。
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を実施してみます。
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をインストールし簡単な動作確認を実施するまでの資料でした。