歡迎光臨
每天分享高質量文章

Linux 上從 MySQL 遷移到 MariaDB 的簡單步驟


大家好!這是一篇介紹如何在伺服器或個人電腦上從MySQL遷移到MariaDB的教程。也許你會問為什麼我們要將資料庫管理從MySQL遷移到MariaDB。往下看我們告訴你為什麼這樣做。


為什麼要用MariaDB來代替MySQL


MariaDB是MySQL社群開發的分支,也是一個增強型的替代品。它由MySQL前開發者們帶頭組織的基金會開發,使用起來和MySQL完全一樣。自從Oracle買下了MySQL,它就不再自由開源了,但是 MariaDB仍然自由開源。一些如谷歌、維基、LinkedIn、Mozilla等的頂級的網站已經遷移到MariaDB了。它的優勢在哪裡:

  • 向後相容MySQL

  • 永遠開源

  • 由MySQL締造者的維護

  • 更尖端的功能

  • 更多的儲存引擎

  • 大型的網站已經轉向MariaDB

現在,讓我們遷移到MariaDB吧!

讓我們建立一個叫linoxidedb用於測試的示例資料庫。

使用以下命令用root賬戶登陸MySQL:

  1. $ mysql -u root -p

輸入mysql 的 root 使用者密碼後,你將進入mysql的命令列

建立測試資料庫:

在mysql命令列輸入以下命令以建立測試資料庫。

  1. mysql> create database linoxidedb;

檢視可用的資料庫,輸入以下命令:

  1. mysql> show databases;

如你所見,算上剛剛新建的linoxidedb我們一共有5個資料庫。

  1. mysql> quit

現在,我們就將剛建立的資料庫從MySQL遷移到MariaDB。

註:使用CentOS這類基於fedora的linux發行版沒有必要參考這篇教程,因為它們在安裝MariaDB時會自動代替MySQL,無需備份現有的資料庫,你只需要更新mysql就可以得到mariadb。

1. 備份現有的資料庫

我們第一個重要的步驟就是備份現有的資料庫。我們在終端(不是MySQL命令列)裡輸入如下命令來完成備份。

  1. $ mysqldump --all-databases --user=root --password --master-data > backupdatabase.sql

哇哦!我們遇到了點麻煩。別擔心我們可以搞定。

  1. $ mysqldump: Error: Binlogging on server not active


mysqldump error


為了修複這個錯誤,我們需要對my.cnf檔案做一些小改動。

編輯my.cnf檔案:

  1. $ sudo nano /etc/mysql/my.cnf

在[mysqld]部分新增如下引數。

log-bin=mysql-bin

好了,在儲存並關閉檔案後,我們需要重啟一下mysql服務。執行以下命令重啟:

  1. $ sudo /etc/init.d/mysql restart

現在,重新執行mysqldump命令來備份所有的資料庫。

  1. $ mysqldump --all-databases --user=root --password --master-data > backupdatabase.sql

dumping databases

上面的命令將會備份所有的資料庫,把它們儲存在當前目錄下的backupdatabase.sql檔案中。

2. 解除安裝MySQL

首先,我們得把my.cnf檔案挪到安全的地方去


:在你解除安裝MySQL包的時候不會自動刪除my.cnf檔案,我們這樣做只是以防萬一。在MariaDB安裝時,它會詢問我們是保持現存的my.cnf檔案,還是使用包中自帶的版本(即新my.cnf檔案)。

在shell或終端中輸入如下命令來備份my.cnf檔案:

  1. $ sudo cp /etc/mysql/my.cnf my.cnf.bak

執行命令來終止mysql服務:

  1. $ sudo /etc/init.d/mysql stop

然後移除mysql包:

  1. $ sudo apt-get remove mysql-server mysql-client

3. 安裝MariaDB

這是在Ubuntu系統中安裝MariaDB的命令:

  1. $ sudo apt-get install software-properties-common
  2. $ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
  3. # sudo add-apt-repository 'deb http://mirror.mephi.ru/mariadb/repo/5.5/ubuntu trusty main'

鍵值匯入並且新增完倉庫後,你就可以用以下命令安裝MariaDB了:

  1. $ sudo apt-get update
  2. $ sudo apt-get install mariadb-server

我們應該還沒忘記在MariaDB安裝時,它會問你是使用現有的my.cnf檔案,還是包中自帶的版本。你可以使用以前的my.cnf也可以用包中自帶的。即使你想直接使用新的my.cnf檔案,你依然可以晚點時候將以前的備份內容還原進去(別忘了我們已經將它複製到安全的地方了)。所以,我們直接選擇了預設的選項“N”。如果需要安裝其他版本,請參考MariaDB官方倉庫。

4. 恢復配置檔案

想要將my.cnf.bak中的內容恢復到my.cnf,在終端中輸入以下命令。由於my.cnf.bak檔案在當前目錄下,所以我們只要簡單的執行以下命令即可:

  1. $ sudo cp my.cnf.bak /etc/mysql/my.cnf

5. 匯入資料庫

最後,讓我們把我們之前建立的資料庫匯入吧!執行一下命令即可完成匯入。

  1. $ mysql -u root -p < backupdatabase.sql

就這樣,我們已成功將之前的資料庫匯入了進來。

來,讓我們登入一下mysql命令列,檢查一下資料庫是否真的已經匯入了:

  1. $ mysql -u root -p

為了檢查資料庫是否被遷移到MariaDB,請在MariaDB命令列中輸入“show databases;”不用輸入(“”),如下:

  1. mariaDB> show databases;

如你所見,linoxidedb及所有的資料庫都已經成功的被遷移了。

總結

最後,我們已經成功地從MySQL遷移到了MariaDB資料庫管理系統。MariaDB比MySQL好,雖然在效能方面MySQL還是比它更快,但是MariaDB的優點在於它額外的特性與支援的許可證。這能夠確保它自由開源(FOSS),並永久自由開源,相比之下MySQL還有許多額外的外掛,有些不能自由使用程式碼、有些沒有公開的開發行程、有些在不久的將來會變的不再自由開源。如果你有任何的問題、評論、反饋給我們,不要猶豫直接在評論區留下你的看法。謝謝觀看本教程,希望你能喜歡MariaDB。

英文出處:linoxide

譯文出處:Linux中國 – martin2011qi
譯文連結:
http://linux.cn/article-5176-1.html

贊(0)

分享創造快樂