• MySQL迁移至MariaDB


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

    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

    mysqldump error

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

    编辑my.cnf文件:

    1. $ sudo nano /etc/mysql/my.cnf

    在[mysqld]部分添加如下参数。

    log-bin=mysql-bin

    configuring my.cnf

    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

    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

    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

    adding mariadb repo

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

    1. $ sudo apt-get update
    2. $ sudo apt-get install mariadb-server

    installing mariadb

    installing mariadb

    my.conf configuration prompt

    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

    importing database

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

    1. mariaDB> show databases;

    mysql to mariadb database migrated

    mysql to mariadb database migrated

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

    总结

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

  • 相关阅读:
    互联网产品跨部门沟通的10个原则(转)
    Axure 全局辅助线(转)
    2015最新移动App设计尺寸视觉规范【图文版】(转)
    iOS和Android的app界面设计规范(转)
    安卓app设计规范整理和Android APP设计篇(转)
    19条ANDROID平台设计规范(转)
    Objective-C编码规范:26个方面解决iOS开发问题(转)
    AxureRP7.0各类交互效果汇总帖(转)
    Windows Server 2016与旧版本系统比较
    application Initialization设置导致处理程序ExtensionlessUrlHandler-Integrated-4.0在其模块列表中有一个错误模块问题的解决
  • 原文地址:https://www.cnblogs.com/rzxiaojia/p/6292470.html
Copyright © 2020-2023  润新知