不論是官方網站、網路商店、進銷存、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
那有沒有已經包好的套件安裝檔呢?我找到了這些文章有提到:
- Raspberry-Pi.nu - Installera MariaDB databas på Raspberry Pi
- 隨手筆記 - [Linux/RaspberryPi] 安裝網頁伺服器(Web Server)使用 Nginx + PHP5-fpm + Mysql-server(or MariaDB)
操作的步驟就是安裝第三方套件庫的來源,更新套件庫資訊,再直接用 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 撰文。
你好:
回覆刪除所以我mysql/mariadb都需要安裝才能繼續你安全性設定之後的步驟嗎