Raspberry Pi 的實作 - MySQL / MariaDB 資料庫的安裝與基本設定

by 2月 06, 2015 1 意見        

不論是官方網站、網路商店、進銷存、ERP ... 等等任何一種的應用,背後都是文字與數字的大量流動,為了集中管理這些彼此之間有關聯性的資料,我們需要一個統一的管理介面與操作語法來儲存、管控與維護。


簡介


為了讓大量關聯性的資料便於新增、刪除、修改、查詢 ... 等動作,我們需要 關聯式資料庫 (RDB、Relational Database) 集中管理,而幫助我們完成資料庫管理工作的軟體,就叫做 關聯式資料庫管理系統 (RDBMS、Relational DataBase Management System)。

不過完整的名稱太冗長了,所以一般都會被直接簡稱為「資料庫」或「資料庫系統」。

在 Linux 平台上,關聯式資料庫管理系統的首選當然是 MySQL,它有不錯的效能、可以免費使用、穩定性又高,對中小型企業來說,它是 MS SQL Server 之外的最佳選擇。

但是在 MySQL 在 2009年變成 Oracle 旗下的軟體之後,社群擔心 MySQL Project 會受到影響,所以成立了另一個相容於它的分支計劃 - MariaDB,在 5.5 之前的版本完全依照 MySQL 的版號演進,不過在 MySQL 5.6 時,MariaDB 加入了自己改善的功能後,就直接把版號改成 10.0.0 起算了。

至於 MySQL 與 MariaDB 的差別,MariaDB 官網有一篇 MariaDB versus MySQL - Features 的文章可以參考。


事前準備

  • Raspberry Pi Type A / A+ / B / B+。
  • Raspbian 作業系統。
  • MySQL 及 MariaDB 兩種套件,只要選擇其中一種即可。

安裝 MySQL


Raspbian 官方套件庫提供了 MySQL 5.1 版或 5.5 版,如果不指定版號的話,會以最新的版號進行安裝。
apt-cache search mysql-server

我們直接指定安裝 5.5 版。
sudo apt-get -y install mysql-server-5.5

安裝過程中,MySQL 會要求我們設定「root」帳號的密碼。


請注意,這個「root」帳號指的是 MySQL 內的管理員帳號,而不是 Linux 系統本身的「root」帳號,它們是兩個完全獨立的帳號。

安裝成功後,MySQL 會被自動啟動,這樣子就可以直接使用了。


安裝 MariaDB


因為 Raspbian 沒有提供現成的套件檔來安裝,「本來」打算直接從 MariaDB 官網下載原始碼,從頭自己來。可是看到了 Google+ 裡 Kyle Platt 網友的安裝記錄,他說光 compiling 就花了四個小時,後來又花了六個小時在 trouble shooting,所以我放棄了這個念頭。

如果真的有心要自己 compiling & install 的朋友,請直接參照他的詳細步驟實作即可,我已經改了最新的 MariaDB 版號與下載連結。
sudo su
wget http://mariadb.mirror.aasaam.ir/pub/mariadb/mariadb-5.5.41/source/mariadb-5.5.41.tar.gz
tar -xvf mariadb-5.5.41.tar.gz
mv mariadb-5.5.41 maria
cd maria/BUILD
./autorun.sh
cd ..
sudo aptitude install cmake libncurses5-dev bison
./configure
make
sudo make install


那有沒有已經包好的套件安裝檔呢?我找到了這些文章有提到:

操作的步驟就是安裝第三方套件庫的來源,更新套件庫資訊,再直接用 apt-get 指令安裝 MariaDB。
sudo apt-get install python-software-properties
sudo apt-key adv –recv-keys –keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
sudo add-apt-repository ‘deb http://ftp.ddg.lth.se/mariadb/repo/10.0/debian wheezy main’
sudo apt-get update
sudo apt-get install mariadb-server


如果是已經在用 MySQL 的朋友也不用擔心轉換的問題,只要先把資料庫檔案本身備份好,移除 MySQL 主程式,再選擇相同版號的 MariaDB 安裝上去,幾乎可以無縫接軌 !!!


安全性設定


MariaDB 為了相容 MySQL,並讓使用者輕鬆取代現有資料庫的基礎下,所有的操作指令幾乎跟 MySQL 一模一樣,只有底層資料庫引擎不一樣而已。

安裝完畢之後,最好調整一些安全性的設定。
mysql_secure_installation

MySQL 目前就只有一個「root」管理員帳號,所以要先通過它的密碼驗證。

輸入錯誤的話,就沒有辦法繼續後面的步驟,並且會一直卡在這兒,要按「Ctrl + C」才能回到 shell 提示字元。

是否修改 root 的密碼? 因為安裝時已經輸入過了,所以這邊就不修改了。

是否刪除匿名帳號? 建議刪除掉為佳。

是否允許 root 帳號從遠端登入? 建議禁止為佳,不過我們有特殊需求,所以設定為允許。

是否刪除 test 資料庫? 預設 MySQL 裡會有一個叫 test 的測試用資料庫,讓使用者有基本的範例資料可用。

是否重新載入權限表? 這是個特殊的系統表格,記錄了使用者的帳號、密碼、權限等資料,當我們更動過任何一筆之後,都應該要重新載入它,讓權限重新生效。

這些動作都做完了之後,MySQL 就擁有最基本的安全性了。


基本操作


這時候就可以登入 MySQL,我們目前只有 root 帳號及在安裝時自行設定的密碼。
mysql -u root -p

進入 MySQL 的介面之後,會停在「mysql >」的提示字元,輸入「help」查詢可用的內建指令。

要跳出管理介面,用「exit」或「quit」指令即可。
quit

針對 MySQL Server 本身的管理工作,也可以用 「mysqladmin」指令來操作。
mysqladmin

最常用到的功能是修改 root 帳號的密碼。
mysqladmin -u root -p password 'NEW-PASSWORD'

要是真的忘記密碼的話,請參閱 Soul & Shell Blog - MySql 修改 root 密碼必勝方法 的步驟,重新啟動 MySQL 進入安全模式再修改吧。

建立資料庫
mysqladmin -u root -p create 'New-Table'

刪除資料庫
mysqladmin -u root -p drop 'New-Table'


注意事項


如果我們把 MySQL / MariaDB 藏在防火牆後面的話,別忘了打開 Port 3306,讓使用者或應用程式能連到資料庫。
sudo iptables -A INPUT -p TCP -i eth0 --dport 3306 --sport 1024:65534 -j ACCEPT


參考資料


圖片來源


更新紀錄

  • 2015/02/06 撰文。

Heracles Jam,江湖人稱「海公公」

IT 技術家 - 創站部落客

一個常用 Windows、慣用 macOS、愛用 Linux 的 3C 阿宅
現職 MIS / 業界講師 / 資訊顧問 / 部落客

1 則留言 :

  1. 你好:
    所以我mysql/mariadb都需要安裝才能繼續你安全性設定之後的步驟嗎

    回覆刪除