2016年6月4日 星期六

將正在運行的 MySQL 5.1 Server 換成 MariaDB 10.1

這陣子觀察全文檢索的需求看來越來越必要,MySQL 5.1貌似只有MyISAM支援但因為交易使用InnoDB較穩定所以Database得換換,裝完後第一時間感受是變快許多...反正交由測試人員去感受等回覆囉...若一切無異常下個大工程就是把正式環境的DB通通替換成MariaDB 10.1。

CentOS卡熟所以先拿來開刀,Ubuntu環境就先等等。

1. 設定 mariadb yum

在 MariaDB 下載頁面中有 LINK 列出了各種 Linux 套件的安裝法,選擇"Download"需要的版本後再點選 Repository configuration tool 進入環境選擇,我的版本是CentOS 6.7 64位元所以選了10.1版本(10.2是beta),底下會秀出 MariaDB 的 yum repository 的資料,整段都複製起來吧。
然後在 /etc/yum.repos.d 這個文件夾下建立一個 mariadb.repo,然後把剛剛複製下來整段內容,通通寫到 mariadb.repo 這個文件並存檔就行了,這樣以後就可以用 yum 取得官方的 MariaDB 相關套件。

2. 備份 mysql data

不論如何,一定要把 mysql server 先停掉的,保險點可以先用 mysqldump 備份完整資料先...啟動備份用的backup.sh儲存當下完整備份跟單DB備份檔。
接者 service mysqld stop 後再下 mv /var/lib/mysql /var/lib/mysql.bak 
3. 移除舊的 MySQL 套件
直接下指令 yum remove mysql-server mysql-libs 這指令主要移除 MySQL 的 server 和動態連結套件,所以可能會列出一些相關套件會一併被移除,我的截圖畫面如下,需記得甚麼東西被移除就是到時候得再裝回去,否則若干服務會異常

4. 安裝 MariaDB Server

直接下指令 yum install MariaDB-server MariaDB-client 完成後先不要啟動MariaDB Service

5. 還原舊資料

在步驟 2 的地方,原本舊的 MySQL Server 資料被修改路徑,所以現在舊資料是在 /var/lib/mysql.bak,此時會發現到 MariaDB Server 安裝完畢後,/var/lib/mysql 也被建立了,所以 mv /var/lib/mysql.bak /var/lib/mysql 置換回來。

6. 升級資料表

由於 MySQL Server 內各表格的內容多少會和 MariaDB 不同,所以還是得升級一下,剛剛也還沒有啟動 MariaDB Server,所以現在就啟動並且升級資料庫。
service mysql start
chkconfig mysql on
mysql_upgrade -p

7. 把被移除的相關套件還原

同步驟3有那些被移掉的就再裝囉,以此案例只需要 yum install php56w-mysql 即可。

PS. 以上內容引用自https://www.pigo.idv.tw/archives/2120 ,感謝大大的分享...

沒有留言: