見出し画像

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 データベース名

いいなと思ったら応援しよう!