2014-04-12

[MariaDB]:一個與MySQL同宗,但似乎更佳的DB-Engine---由捨棄MySQL無痛改用MariaDB的教學篇

開宗明義:為了怕之後MySQL變成付費制度,所以改用同宗的MariaDB

經[MySQL 創辦人 Michael Widenius 說:「沒有任何理由再用MySQL」]代入,連google都在去年開始將內部的MySQL部份轉移到MariaDB了,所以,身為一知半解的我們,也該試著玩一玩。

比較文:https://mariadb.com/kb/en/mariadb-vs-mysql-features/
(在文中有說明,MariaDB在10.0之後加入支援NoSQL engine)

需要注意的是,MariaDB現今有5.5與10.0的版本方向(5.5對應的也就是MySQL 5.5,10.0就是MySQL 5.6),分方向別其實應該就是要與MySQL的相關性分離…而且10.0要加入NoSQL支援,也就是分離MySQL了…

參考文:

這邊安裝的是MariaDB 5.5,主要是無痛轉移,所以不用MariaDB 10.0(因為我也不確定10版可不可以等於無痛,安全起見,先用5.5)

主要系統:CentOS 6.5 x86

教學如下(主要是參考第二個網址的方式,但有做極少的修改)

懶人方式,還是使用yum

1)MariaDB跟MySQL同宗,所以在使用上都跟原來的MySQL一樣,而我們是用yum安裝的,所以它會檢查到你「已」有安裝了MySQL,而不讓你裝MariaDB,所以,要用懶人方式,就要先移除原有的MySQL…但可以放心,移除MySQL只是移除執行與相關應用,原有的db不會被移除掉,而且裝了MariaDB後也會自己吃寫原來的MySQL db

但為了安全起見,可以先利用mysqldump全部資料庫
mysqldump -uroot -p -A --default-character-set=utf8 > mysql.sql
*是不是要用--default-character-set=utf8,這要看你原本MySQL的設定…中文環境我們常在用的人都已習慣設定為utf8了,但不代表「一定」就是utf8,一切請詳查自己的設定

接著,利用yum remove掉mysql engine
service mysqld stop
先把服務停止,然後再開始做yum remove
yum remove mysql-server mysql-devel mysql-libs
*這邊要注意一下,因為yum remove會使用相依性移除,所以要多加留意有沒有用了一堆跟mysql綁在一起的東西…比如php-mysql、phpmyadmin、cacti等等,不然本來只想移除一、兩個,結果因為相依性而變成一堆~~

*yum好像可以去改yum.conf來讓他不判斷相依性,但改來改去也麻煩,倒是可以使用[ rpm -e --nodeps package-name ]來跳過相依性…但本文還是用YUM,因為我受影響的東西不多

2)加入MariaDB repo來yum安裝

可以到 /etc/yum.repo.d 底下建立一個 mariadb.repo,內容如下
32位元系統
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5/centos6-x86
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
64位元系統
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
如果有redhat或fedora的,可以自己到 http://yum.mariadb.org/5.5/ 看看要改什麼路徑名,如果想裝10.0的,也可以到 http://yum.mariadb.org/10.0/ 去看看

上述的repo新增完後,可以開始使用yum來安裝了,指令如下
yum install MariaDB-devel MariaDB-client MariaDB-server
3)設定MariaDB、安全性與 reload privilege

做到步驟2都沒什麼錯誤的話,就可以恭喜你了…現在最後的幾個步驟做完就算完成無痛過程了

設定MariaDB開機啟動(註:我自己在玩的時候,yum裝完,MariaDB就預設是開機啟動了…)
chkconfig mysql on
啟動MariaDB
service mysql start
*這邊應該有朋友覺得,為什麼用MairaDB還是用mysql…開頭其實就有說過了,MySQL與 MariaDB是同宗的東西,所以拿原本的MySQL過來再做加強,其實是可想而知的,但你們應該可以了解,他把原來 MySQL  的服務名 [ mysqld ],在 MariaDB 改為 [ mysql ],或許,MariaDB 認為這樣才是真的 MySQL 原生。

執行安全性設定
/usr/bin/mysql_secure_installation
*其實這邊這個部份在我們第一次使用 MySQL 時也玩過,我們可以叫這動作叫「安全性確認」或叫「安全性初始化」,其實設定的項目就包括[輸入現在 root 密碼(Enter current password for root)]、[更改 root 密碼(Change the root password)]、[移除匿名帳號(Remove anonymous users)]、[拒絕使用 root 帳號遠端登入(Disallow root login remotely)]、[移除測試用的資料庫與其存取權限(Remove test database and access to it)]、[重新讀取使用者權限(Reload privilege tables now)]

*如果這是我們第一次使用(我指的是以前沒裝MySQL,就直接使用MariaDB),在[ Enter current password for root ]時,root密碼預設是空的;但如果像我本文中所寫,我是原本有安裝MySQL,然後要在原系統上轉移至MariaDB…那這時的 root 密碼就是原來在 MySQL的 root 密碼

*secure installation 過程中我比較在乎的是 [Reload privilege tables now] ,這一定要yes,以免一些問題。

這樣,就完成了無痛轉移了…(至少我是無痛)

沒有留言: