Linux中國

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

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

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

$ mysql -u root -p

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

創建測試資料庫:

在mysql命令行輸入以下命令以創建測試資料庫。

mysql> create database linoxidedb;

查看可用的資料庫,輸入以下命令:

mysql> show databases;

creating test 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

configuring my.cnf

好了,在保存並關閉文件後,我們需要重啟一下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;

mysql to mariadb database migrated

如你所見,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中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國