萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> Linux系統上MySQL遷移到MariaDB的【圖文教程】

Linux系統上MySQL遷移到MariaDB的【圖文教程】

MariaDB數據庫管理系統是MySQL的一個分支,主要由開源社區在維護,采用GPL授權許可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的代替品。

MariaDB來代替MySQL的原因

MariaDB使用起來和MySQL完全一樣。自從Oracle買下了MySQL,它就不再自由開源了,但是 MariaDB仍然自由開源。一些如谷歌、維基、LinkedIn、Mozilla等的頂級的網站已經遷移到MariaDB了。它的優勢在哪裡:

向後兼容MySQL

永遠開源

由MySQL締造者的維護

更尖端的功能

更多的存儲引擎

大型的網站已經轉向MariaDB

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


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

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

$ mysql -u root -p

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

創建測試數據庫:

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

mysql> create database linoxidedb;

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

mysql> show databases;


如你所見,算上剛剛新建的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


mysqldump error

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

編輯my.cnf文件:

$ sudo nano /etc/mysql/my.cnf

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

log-bin=mysql-bin


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

$ sudo /etc/init.d/mysql restart

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

$ 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文件:

$ 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

uninstalling mysql


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'

adding mariadb repo


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

$ sudo apt-get update

$ sudo apt-get install mariadb-server

installing mariadb


my.conf configuration prompt


我們應該還沒忘記在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

importing database


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

mariaDB> show databases;


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

總結

我們已經成功地從MySQL遷移到了MariaDB數據庫管理系統。MariaDB比MySQL好,雖然在性能方面MySQL還是比它更快, 但是MariaDB的優點在於它額外的特性與支持的許可證。這能夠確保它自由開源(FOSS),並永久自由開源,相比之下MySQL還有許多額外的插件, 有些不能自由使用代碼、有些沒有公開的開發進程、有些在不久的將來會變的不再自由開源。

copyright © 萬盛學電腦網 all rights reserved