Raspberry PiでSQLサーバーを作る①~SQLサーバーの設定~
センサーやスクレイピングなどで取得したデータを一括で管理するために、データベースサーバーを作ろうと思います。
Raspberry Pi上で、PostgreSQLのデータベースサーバーを作成する方法を紹介します。
SQLとは
SQLとは、データベースの操作を行うためのコンピューター言語です。データベースに格納されたデータを取得、更新、削除、追加するために使用されます。
PostgreSQLとは
PostgreSQLは、オープンソースのリレーショナルデータベース管理システムです。商用目的を含むあらゆる目的に無料で使用できます。
ただし、PostgreSQLを使用するためにSQLサーバーを立ち上げる必要があります。
SSDにUbuntuをインストールする
SQLサーバー用のマシンスペックはそれほど高くなくても良いので、消費電力の小さいRaspberry Piで構築することにします。
Raspberry PiにOSをインストールする際、microSDカードが良く使われますが寿命が短いのが難点です。
今回は、データベースを格納して長期運用するため、以下のUSBタイプの外付けSSDにOSを書き込むことにしました。
今回、ケースはこちらのFAN付きのものを使用しました。
また、今回の用途にはOSのGUIが不要のため、Ubuntu Desktopではなく、Ubuntu Serverのほうを採用することにします。
OSの書き込みにはRaspberry Pi Imagerを使用します。
Raspberry Pi Imagerで「Other general-purpose OS -> Ubuntu -> Ubuntu Server **.**.** LTS (64-bit)」をSSDに書き込みます。
ホスト名は「pi-db」として、設定を以下のようにしてSSDに書き込みました。
※Raspberry Piのモデルによっては、デフォルトでUSBブートができないモデルもあることにご注意ください。設定を書き換えることでUSBブートが可能になることもあるようです。
Raspberry PiにSSHで接続する
別のPCから以下のコマンドでRaspberry PiにSSH接続します。
ssh ユーザー名@pi-db
以下のように、Raspberry Piのホストpi-dbに接続できました。
PostgreSQLをインストールする
ssh接続したpi-db上で、以下のコマンドを実行することでPostgreSQLをインストールします。
sudo apt update
sudo apt install postgresql postgresql-contrib
このとき、デフォルトで「postgres」というユーザーアカウントが作製されています。
PostgreSQLのデータベースを操作する
PostgreSQLを起動・停止・状態確認するためのコマンドです。
# 起動
sudo service postgresql start
# 停止
sudo service postgresql stop
# 状態確認
sudo service postgresql status
デフォルトで作成された「postgres」にユーザーを変更しておきます。
sudo -i -u postgres
作成済みのデータベースを確認するコマンドです。
psql -l
「PostgreSQL」の初期状態では、以下のような表示になるかと思います。
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
------------+----------+----------+---------+---------+-----------------------
example-db | *** | UTF8 | C | C |
postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 |
template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
データベースを作成・削除するためのコマンドは以下のようになります。
# データベース新規作成
createdb データベース名
# データベース削除
dropdb データベース名