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

jopen 9年前發布 | 23K 次閱讀 MySQL MariaDB 數據庫服務器

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

為什么要用MariaDB來代替MySQL

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

  • 向后兼容MySQL
  • 永遠開源
  • 由MySQL締造者的維護
  • 更尖端的功能
  • 更多的存儲引擎
  • 大型的網站已經轉向MariaDB

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

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

讓我們創建一個叫linoxidedb用于測試的示例數據庫。

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

$ mysql -u root -p

輸入mysql 的 root 用戶密碼后,你將進入mysql的命令行

創建測試數據庫:

在mysql命令行輸入以下命令以創建測試數據庫。

mysql> create database linoxidedb;

查看可用的數據庫,輸入以下命令:

mysql> show databases;

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

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

mysql> quit

現在,我們就將剛創建的數據庫從MySQL遷移到MariaDB。

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

1. 備份現有的數據庫

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

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

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

$ mysqldump: Error: Binlogging on server not active

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

mysqldump error

為了修復這個錯誤,我們需要對my.cnf文件做一些小改動。

編輯my.cnf文件:

$ sudo nano /etc/mysql/my.cnf

在[mysqld]部分添加如下參數。

log-bin=mysql-bin

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

好了,在保存并關閉文件后,我們需要重啟一下mysql服務。運行以下命令重啟:

$ sudo /etc/init.d/mysql restart

現在,重新運行mysqldump命令來備份所有的數據庫。

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

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

dumping databases

上面的命令將會備份所有的數據庫,把它們存儲在當前目錄下的backupdatabase.sql文件中。

2. 卸載MySQL

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

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

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

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

運行命令來終止mysql服務:

$ sudo /etc/init.d/mysql stop

然后移除mysql包:

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

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

3. 安裝MariaDB

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

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

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

鍵值導入并且添加完倉庫后,你就可以用以下命令安裝MariaDB了:

$ sudo apt-get update
$ sudo apt-get install mariadb-server

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

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

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

4. 恢復配置文件

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

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

5. 導入數據庫

最后,讓我們把我們之前創建的數據庫導入吧!運行一下命令即可完成導入。

$ mysql -u root -p < backupdatabase.sql

就這樣,我們已成功將之前的數據庫導入了進來。

來,讓我們登錄一下mysql命令行,檢查一下數據庫是否真的已經導入了:

$ mysql -u root -p

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

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

mariaDB> show databases;

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

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

總結

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


via: http://linoxide.com/linux-how-to/migrate-mysql-mariadb-linux/

作者:Arun Pyasi 譯者:martin2011qi 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!