大家好!这是一篇介绍如何在服务器或个人电脑上从MySQL迁移到MariaDB的教程。也许你会问为什么我们要将数据库管理从MySQL迁移到MariaDB。往下看我们告诉你为什么这样做。

为什么要用MariaDB来代替MySQLMariaDB是MySQL社区开发的分支,也是一个增强型的替代品。它由MySQL前开发者们带头组织的基金会开发,使用起来和MySQL完全一样。自从Oracle买下了MySQL,它就不再自由开源了,但是MariaDB仍然自由开源。一些如谷歌、维基、LinkedIn、Mozilla等的顶级的网站已经迁移到MariaDB了。它的优势在哪里:


向后兼容MySQL

永远开源

由MySQL缔造者的维护

更尖端的功能

更多的存储引擎

大型的网站已经转向MariaDB现在,让我们迁移到MariaDB吧!

mariadb数据库可以导入mysql mariadb数据库迁移_mariadb数据库可以导入mysql


让我们创建一个叫linoxidedb的用于测试的示例数据库。

使用以下命令用root账户登陆MySQL:

$ mysql -u root -p输入mysql 的 root 用户密码后,你将进入mysql的命令行

创建测试数据库:

在mysql命令行输入以下命令以创建测试数据库。

mysql> create database linoxidedb;查看可用的数据库,输入以下命令:

mysql> show databases;

mariadb数据库可以导入mysql mariadb数据库迁移_操作系统_02


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

mariadb数据库可以导入mysql mariadb数据库迁移_mariadb数据库可以导入mysql_03


mysqldump error

为了修复这个错误,我们需要对my.cnf文件做一些小改动。

编辑my.cnf文件:

$ sudo nano /etc/mysql/my.cnf在[mysqld]部分添加如下参数。

log-bin=mysql-bin

mariadb数据库可以导入mysql mariadb数据库迁移_mysql_04


好了,在保存并关闭文件后,我们需要重启一下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

( ↓↓ —— 未完 —— ↓↓ )


完美阅读及吐槽,请猛击:http://linux.cn/article-5176-qqmail.html[258,3,1427932080]