为什么要用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;

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

configuring my.cnf

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

uninstalling mysql

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'

adding mariadb repo

键值导入并且添加完仓库后,你就可以用以下命令安装MariaDB了:

  1. $ sudo apt-get update
  2. $ 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文件在当前目录下,所以我们只要简单的执行以下命令即可:

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

5. 导入数据库

最后,让我们把我们之前创建的数据库导入吧!运行一下命令即可完成导入。

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

就这样,我们已成功将之前的数据库导入了进来。

来,让我们登录一下mysql命令行,检查一下数据库是否真的已经导入了:

  1. $ mysql -u root -p

importing database

为了检查数据库是否被迁移到MariaDB,请在MariaDB命令行中输入“show databases;”不用输入(“”),如下:

  1. mariaDB> show databases;

mysql to mariadb database migrated

如你所见,linoxidedb及所有的数据库都已经成功的被迁移了。

总结

最后,我们已经成功地从MySQL迁移到了MariaDB数据库管理系统。MariaDB比MySQL好,虽然在性能方面MySQL还是比它更快, 但是MariaDB的优点在于它额外的特性与支持的许可证。这能够确保它自由开源(FOSS),并永久自由开源,相比之下MySQL还有许多额外的插件, 有些不能自由使用代码、有些没有公开的开发进程、有些在不久的将来会变的不再自由开源。

MySQL迁移至MariaDB的更多相关文章

  1. Linux 上从 MySQL 迁移到 MariaDB 的简单步骤

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

  2. 在 Linux 中怎样将 MySQL 迁移到 MariaDB 上

    自从甲骨文收购 MySQL 后,由于甲骨文对 MySQL 的开发和维护更多倾向于闭门的立场,很多 MySQL 的开发者和用户放弃了 MySQL.在社区驱动下,促使更多人移到 MySQL 的另一个叫 M ...

  3. 怎样将 MySQL 迁移到 MariaDB 上

    自从甲骨文收购 MySQL 后,由于甲骨文对 MySQL 的开发和维护更多倾向于闭门的立场,很多 MySQL 的开发者和用户放弃了它.在社区驱动下,促使更多人移到 MySQL 的另一个叫 MariaD ...

  4. 怎样将数据库MySQL 迁移到 MariaDB 上

    自从甲骨文收购 MySQL 后,由于甲骨文对 MySQL 的开发和维护更多倾向于闭门的立场,很多 MySQL 的开发者和用户放弃了它.在社区驱动下,促使更多人移到 MySQL 的另一个叫 MariaD ...

  5. 从MySQL迁移到MariaDB(CentOS)

    MySQL是世界上最流行的开源关系数据库.原来 MariaDB 的设计初衷之一就是完全兼容 MySQL,包括 API 和客户端协议,使之能轻松成为 MySQL 的代替品.MariaDB 与 MySQL ...

  6. 从MySQL 5.5迁移到Mariadb 10.1.14

    从MySQL 5.5迁移到Mariadb 10.1.14 迁移计划如下: 1.备份MySQL 5.5的数据库,对指定库进行备份. 2.还原到Mariadb,然后建立复制. 3.然后就可以愿意啥时候切换 ...

  7. 迁移到MariaDB galera

    迁移到MariaDB galera [已注销] [已注销] -- :: [安装] ====== https://downloads.mariadb.org/mariadb/repositories/ ...

  8. 将数据从MySQL迁移到Oracle的注意事项

    将数据从MySQL迁移到Oracle的注意事项1.自动增长的数据类型处理MYSQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值.ORACLE没有自动增长的数据类型,需要建立一个自动 ...

  9. MySql学习(MariaDb)

    资料 http://www.cnblogs.com/lyhabc/p/3691555.html http://www.cnblogs.com/lyhabc/p/3691555.html MariaDb ...

随机推荐

  1. Aspose.word组件介绍

    阅读目录 1.基本介绍 2.文档对象模型概述        本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html 本博客其他.NET开 ...

  2. java获取服务器一些信息的方法

    request.getServletContext().getRealPath("/") 获取项目所在服务器的全路径,如:D:\Program Files\apache-tomca ...

  3. (译)Cg Programming/Unity(Cg编程/Unity)

    最近在学习Unity3d中的shader编程,能找到的中文资料比较少,于是,尝试翻译一下wiki Books上的资料,以方便其他跟我一样的入门学习者.由于是第一次翻译技术资料,经验不足,难免出错,请路 ...

  4. spring data jpa 简单使用

    通过解析方法名创建查询 通过前面的例子,读者基本上对解析方法名创建查询的方式有了一个大致的了解,这也是 Spring Data JPA 吸引开发者的一个很重要的因素.该功能其实并非 Spring Da ...

  5. pageContext.setAttribute的使用场合

    由于页面间跳转以后,pageScope域失效,所以,关于pageContext.setAttribute和pageContext.getAttribute的使用(pagecontext作用域是page ...

  6. 【extjs6学习笔记】Mastering Ext JS, 2nd Edition

    我不知道在别人看来,我是什么样的人:但在我自己看来,我不过就象是一个在海滨玩耍的小孩,为不时发现比寻常更为光滑的一块卵石或比寻常更为美丽的一片贝壳而沾沾自喜,而对于展现在我面前的浩瀚的真理的海洋,却全 ...

  7. SharePoint Server 2016 WEB 网站浏览器支持

    SharePoint Server 2016支持多种常用的Web浏览器,如Internet Explorer,Google Chrome,Mozilla Firefox,Apple Safari和Mi ...

  8. Python +selenium之设置元素等待

    注:本文转载http://www.cnblogs.com/mengyu/p/6972968.html 当浏览器在加载页面时,页面上的元素可能并不是同时被加载完成,这给元素的定位增加了困难.如果因为在加 ...

  9. PostgreSQL扫盲教程

    在这个链接下载PostgreSQL. 安装时,请记住您给user postgres设置的初始密码,以及默认端口号5432,后面需要使用. 再安装图形化管理UI pgadmin,可以从这个链接获得. 安 ...

  10. Windows UEFI 安装策略的一个细节

    在计算机已连接任何带Windows Boot Manager的硬盘的时候,系统自己不会创建EFI分区,而是用之前的