1. 程式人生 > >在樹莓派上安裝MySQL資料庫和簡單使用方法

在樹莓派上安裝MySQL資料庫和簡單使用方法

在嵌入式Linux平臺下如果需要使用資料庫功能,一般會選擇SQLite或MySQL。SQLite是輕量級、基於檔案的關係資料庫,系統資源佔用較少;但是SQLite的缺點是不支援遠端部署和訪問。對於大多數應用,SQLite是很易用的資料庫,我之前就使用過它開發過一套生產管理系統;但是當需要遠端訪問資料並提供資料庫安全時,MySQL則是更好的選擇。考慮到樹莓派的效能侷限,其本身並不適合整合資料展示功能(無論是基於GUI的還是基於web的)。於是可以將其只作為資料記錄平臺,而將資料的整理、展示在PC端完成。這種模式下,樹莓派可以作為資料採集主機,將有線 / 無線節點的資料進行集中採集記錄,再通過PC進行分析和展示。在這樣的初衷驅使下,我研究並整理了如何在樹莓派上安裝和使用MySQL。

1. 安裝MySQL 
使用管理員許可權執行apt-get獲取最新的MySQL及Python程式設計介面(之後用於資料庫程式設計):


$ sudo apt-get install mysql-server python-mysqldb

安裝過程中需要輸入root管理員的密碼,該密碼之後用於訪問資料庫系統。

2. 測試MySQL 
通過以下命令執行MySQL的命令提示系統,並輸入在安裝過程中設定的密碼:


mysql -u root -p

Enter password:Welcome to the MySQL monitor.Commandsendwith;or \g.YourMySQL
connection id is47Server version:5.5.41-0+wheezy1 (Debian)Copyright(c)2000,2014,Oracleand/or its affiliates.All rights reserved.Oracleis a registered trademark of OracleCorporationand/or its affiliates.Other names may be trademarks of their respective owners.Type'help;'or'\h'for help.Type'\c' to clear the current input statement
.

檢視當前已建立的資料庫:


mysql> SHOW DATABASES;+--------------------+|Database|+--------------------+| information_schema || mysql              || performance_schema |+--------------------+
 rows inset(0.00 sec)

3. 建立一個新的資料庫和表單 
以上資料庫都是系統建立的資料庫,要想開始插入資料,首先需要建立新的資料庫和表單。這裡假設要實現一個CPU溫度記錄的功能,存放在名為"sensordb"的資料庫中。使用以下命令建立資料庫:


mysql> CREATE DATABASE sensordb;Query OK,1 row affected (0.00 sec)

檢視資料庫是否建立成功:


mysql> SHOW databases;+--------------------+|Database|+--------------------+| information_schema || mysql              || performance_schema || sensordb           |+--------------------+
 rows inset(0.01 sec)

在sensordb資料庫下建立一個表單(table),該表單包含兩個域(fields):日期和當天平均CPU溫度。時間域使用的資料格式為DATE;而溫度使用DECIMAL(4,1),即最大三位整數加一位小數。


mysql> USE sensordb;Database changed

mysql> CREATE TABLE cputemptable(recordtime DATE, temp DECIMAL(4,1));Query OK,0 rows affected (0.03 sec)

查看錶單是否建立成功:


mysql> SHOW TABLES;+--------------------+|Tables_in_sensordb|+--------------------+| cputemptable       |+--------------------+
 row inset(0.00 sec)

查看錶單的域名稱與型別:


mysql> DESCRIBE cputemptable;+------------+--------------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+------------+--------------+------+-----+---------+-------+| recordtime | date         | YES  || NULL    ||| temp       |decimal(4,1)| YES  || NULL    ||+------------+--------------+------+-----+---------+-------+
 rows inset(0.01 sec)

4. 向資料庫中插入測試資料 
在上一步中已經成功建立了用於CPU溫度採集的資料庫和表單,但是因為沒有任何資料,所以該表單中沒有任何內容。現在通過手動插入的方式向該表單中插入若干資料,測試是否可以正常執行。


mysql> INSERT INTO cputemptable
    -> values('2015-03-25',36.5);

mysql> INSERT INTO cputemptable
    -> values('2015-03-26',39.5);

以上每條如果操作成功,都回返回提示:

Query OK,1 row affected (0.00 sec)

5. 檢視資料庫操作的結果 
為了驗證以上資料是否成功插入,可以通過select語句檢索資料庫:


mysql> SELECT * FROM cputemptable;+------------+------+| recordtime | temp |+------------+------+|2015-03-25|36.5||2015-03-26|39.5|+------------+------+
 rows inset(0.00 sec)

可以看到之前的兩條資料已經成功插入到cputemptable資料表中。

最後使用quit退出互動系統:


mysql> quit
Bye

整個過程下來,發現MySQL在樹莓派上的部署與操作與在桌面Linux平臺上幾乎沒有差別。這裡唯一需要注意的是,因為樹莓派的硬體資源有限,所以在配置MySQL的優化選項時,需要降低其對系統資源的使用。具體配置細節在我親自研究試驗之後再進行補充。