2015/05/07

MySQL on Raspberry Pi

気圧センサー(MPL115A2)のデータをつぶやかせる材料だけでは、少々もったいないので
データを保存しておこうと考えデータベースサーバを立ち上げ、そこに測定した気圧を
保存することにしました。

1. MySQLサーバのインストール

 $ sudo apt-get install mysql-server

2. このままでは、SDカード上の /var/lib/mysql に保存されてしまうので、NFSサーバに
 データを保存するようにします。
 Raspberry Pi側:/etc/fstab に /var/lib/mysql を追加。
 NFSサーバ側:/var/lib/mysql を接続するDirを作成。/etc/exports に作成したDirを
        追加。
3. MySQLサーバの起動

これでMySQLサーバが起動したので、保存するテーブルやカラムを設定します。
その前にrootユーザのパスワード設定や、その他ユーザの追加などはリンク先を参考に
してください。
http://webkaru.net/mysql/mysql-root-password/

保存するテーブルやカラムは、日にち、時刻、気圧を保存することにしました。
次にRubyからMySQLにアクセスするにはmysqlかmysql2というライブラリを追加する
必要があります。私はmysqlをインストールしてみました。

$ sudo gem install ruby-mysql

ようやく準備が整ったので、プログラムにデータベースにアクセスする記述を追加します。
追加するのは、初期設定部分の

 require "mysql"
 db = Mysql::new('hostname', 'username', 'password', 'dbname')
 db.query("set character set utf8")

と、気圧をstdoutに出していたところに、データベースにインサートする記述を追加
しました。

 store = db.prepare("insert into dbname (date, time, press) values (?,?,?)")
 store.execute(date, time, press)

ここらへんの記述は、現在絶賛使用中のPHPと記述が似ていて親近感があります。(^^)
データベースを使うならば、不要となる配列もあるのですが、とりあえず棚に上げて
おきます。(^^;
とりあえず、気圧データは保存できるようになりました。