ものづくりブログ

ゼロからスタートして何かを作って世に出すまでのことを書くブログです.

Raspberry Piをサーバ化する その3(データベースを構築)

 

こんにちは.

 

前回までにサーバを立てることに成功しました.ここまでにインストールしたのはLinux(Rasbian)Apache,PHPです.今回はMySQLというものをインストールします.よくWEBサーバを立てる際にこれらの頭文字を取って,LAMPなんて言い方をします.サーバを立てる上で基本的なシステムがこの4つというわけです.

 

ラズパイにログインしたら下記のコマンドを実行し,mySQLをインストールします[1].

 

sudo apt-get update

sudo apt-get install mysql-server

 

するとmySQLユーザ用のパスワードが求められますので,好きなパスワードを入力します(下図).このラズパイを恒常的に外部に公開する予定は私はありませんので,普段ログインしているpiと同じパスワードでも問題無いと思います[2].

 

f:id:daisukekmr:20150216212205p:plain

 

次にmySQLを取り扱うために,phpMyAdminをインストールします.

 

sudo apt-get install phpmyadmin

 

途中でサーバをどのアプリケーションで立てるか選択する画面が出るので,Apache2を選択し,Enterを押します.

 

以下の様な画面でdpconfig-commonでデータベースの設定を行うか聞かれるので,おすすめされるがままにYESを選択します.

 

f:id:daisukekmr:20150216212907p:plain

 

その後2回ほどパスワードを入力する画面が出てきますので,1回目はさきほど指定したmySQLのパスワードを入力します(下図).次はphpMyAdminのパスワードを指定するのですが,こだわりがなければ先ほどと同じパスワードを入力すれば問題無いと思います(下図).

 

f:id:daisukekmr:20150216213136p:plain

 

ただしくインストールされて,自動起動の設定に入っているか確認しましょう.

 

ls /etc/rc2.d/

 

下記の画面のようにapache2とmySQLが入っていればOKです[3].

 

f:id:daisukekmr:20150216213323p:plain

 

次にphpMyAdminの動作を確認してみます.下記のアドレスにアクセスして,次のような画面が出れば成功です.

 

http://raspberrypi.local/phpmyadmin

 

f:id:daisukekmr:20150216213926p:plain

 

ユーザ名に"root"と入力し,パスワードは先ほどphpMyAdmin用に指定したものを入力して実行を押せばログインできます.

 

試しに使ってみましょう.

最初の画面からデータベースを選択すると下記の画面が表示されます.

 

f:id:daisukekmr:20150216214623p:plain

 

ここで画面中央の「新規データベースを作成する」の下にあるフォームに「TEST」と入力し,右の作成を押します.

すると「TEST」というデータベースが作成され,下図のように少し下のデータベース一覧の中に「TEST」と表示されます[4].

 

f:id:daisukekmr:20150216214807p:plain

 

この一覧からテストをクリックすると,以下の様な画面に移ります.これはテーブルの管理画面です.データベースは複数のテーブル(表)により構成されています.

 

f:id:daisukekmr:20150216215112p:plain

 

画面中央の,名前と書かれた少し右にあるフォームにTABLE1と入力し,カラム数を2と入力し,画面右の実行を押します.これは列数が2列の表を作成するという意味です.行数はデータが増える度に自動的に追加されていくので,指定は不要です.

実行を押すと以下の画面が表示されます.これは作成するテーブルの列について設定する画面です.

 

f:id:daisukekmr:20150216215648p:plain

 

実際の画面ではこのキャプチャより項目数が多いのですが,入りきらなかったのでそれぞれの項目の意味を下記に羅列します.

 

Column: カラム(列)の名前です

種別: プログラムで言う型のことです.整数ならINTです

長さ: 最大のデータの長さです

デフォルト値: 何もデータが入れられる前のデフォルトの値です

照合順序: 文字列順に並び替える時などに使う,文字の順番に関するルールを指定します

属性: 文字列型のデータの時のより詳細なデータの属性のようです(よくわからない)

NULL: データが何もない"NULL"を許可するかどうかです

インデックス: データが膨大になった時に検索を高速化するためのインデックスについての設定です

AUTO_INCREMENT: 整数型のカラムの時,データが入った順に1ずつ大きな値を格納する機能です

コメント: カラムに関するコメントです

MINEタイプ: WEBの世界での拡張子のようなものです[5]

ブラウザ変換機能: ブラウザでデータを閲覧するときの便利機能っぽいです(不明)[6]

変換オプション: ブラウザ変換機能のオプションです

 

以下はカラムごとではなくテーブルごとの項目

テーブルのコメント: テーブルに関するコメントです

ストレージエンジン: データの取扱を行うシステムです.

照合順序: おそらくカラム別ではなくテーブル全体の照合順序をしていするところです

パーティションの定義: データの分割に関するところみたいです

 

以下の画面のように入力して,画面下方の「保存する」を押しましょう.

 

f:id:daisukekmr:20150216223049p:plain

 

すると以下の画面のようにテーブル一覧に今作成したテーブルが表示されます.

 

f:id:daisukekmr:20150216223226p:plain

 

ここで作製したテーブル名の少し右にある「挿入」をクリックします.すると以下の様な画面が出てきます.

 

f:id:daisukekmr:20150216223730p:plain

 

キャプチャを参考にフォームに値を入力して,入力した欄の左下にある「実行」を押します.これでデータが追加されたはずです.画面上部のメニューから挿入を選んで,同じようにデータを色々と追加してみましょう.

 

何度か試したら,今度は画面上部のメニューから表示を選んでみましょう.下図のように先ほど追加したデータが表示されていれば成功です.

 

f:id:daisukekmr:20150216224256p:plain

 

これで準備とデータベースの取り扱いの練習は完了です.

 

これを使ってセンサの値を格納したり,そのデータを使ってリアルタイムにグラフ化してくれるようなWEBサイトを作ったりすることが当面の目標です.

 

 

 

参考文献

[1]XodusTech「Raspberry Pi PHP GPIO Guide」(http://www.xodustech.com/guides/raspberry-pi-php-gpio)

[2]Frog Code Works「【Raspberry Pi】一行でLAMPを構築する」(http://frogcodeworks.com/raspberrypi-lamp-setting/)

[3]r271-635「Raspberry PiをWebサーバに(Apache2, MySQL, PHP, Perlのインストール)」(http://netlog.jpn.org/r271-635/2013/01/raspberry_pi_webserver.html)

[4]PHPBook「mySQLへの接続」(http://www.phpbook.jp/tutorial/mysql/)

[5]とほほのWWW入門「拡張子とMIMEタイプ」(http://www.tohoho-web.com/wwwxx015.htm)

[6]phpMyAdmin日本語版「変換機能」(http://phpmyadmin-japanese.readthedocs.org/ja/latest/transformations.html)