MySQL 轉移到 MariaDB

RHEL 及 CentOS 7 開始的預設資料庫系統由 MySQL 轉為 MariaDB, 而且由於 Oracle 較封閉的政策, 很多 MySQL 開發者都將應用程式轉移到 MariaDB。MariaDB 是原來 MySQL 的創辦人開發的開源資料庫系統, 可以取代現有的 MySQL。以下會以 CentOS 6 為例子介紹如何從原有 MySQL Server 連同資料一拼轉移到 MariaDB 的做法。

MySQL 資料及設定檔備份
以下轉移不會用 mysqldump 備份資料, 而且將原來的資料目錄直接給 MariaDB 使用。為安全起見, 先停止 MySQL 及將資料目錄備份。

停用 MySQL:

# service mysql stop

如果是 CentOS 7, 用 systemctl 停止 MySQL:

# sudo systemctl stop mysql

執行以下指令將 MySQL 的資料目錄備份, CentOS 的 MySQL 資料目錄預設在 /var/lib/mysql:

# cp -Rp /var/lib/mysql /root/mysql_dir.bak

接著備份 my.cnf:

cp /etc/my.cnf /root/my.cnf.bak

移除 MySQL 套件
在安裝 MariaDB 前, 先將現有的 MySQL 移除:

接著用 yum 移除 MySQL 套件:

# yum remove mysql* mysql-server mysql-devel mysql-libs

安裝 MariaDB

然後加入 MariaDB 的 YUM Repository, 那便可以用 YUM 安裝 MariaDB。(CentOS 7 可以略過此步驟)

建立檔案 /etc/yum.repos.d/MariaDB.repo

# vi /etc/yum.repos.d/MariaDB.repo

加入以下內容:

之後可以用 YUM 安裝 MariaDB 及其相關套件:

# sudo yum install MariaDB-server MariaDB-client

然後之前備份的 my.cnf 檔案還原到 /etc/my.cnf:

# cp /root/my.cnf.bak /etc/my.cnf

如果 MySQL 及 MariaDB 的版本相同, 例如 MySQL 5.5 轉移到 MariaDB 5.5, 可以直接啟動 MariaDB; 但如果 MariaDB 的版本較新, 需要執行 mysql_upgrade 將兩個版本不相容的地方轉換。

# mysql_upgrade –verbose

之後可以啟動 MariaDB:

# service mariadb start

或者

# systemctl start mariadb

啟動 MariaDB 後, 可以連連到 MariaDB 檢查是否正常, 例如檢查資料庫 test_db 裡面的 test_table:

如果可以顯示原來的資料, 轉移過程便完成了。




Latest Comments

  1. zong 16 February 2016
  2. zong 17 February 2016

Leave a Reply