为什么要用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还有许多额外的插件, 有些不能自由使用代码、有些没有公开的开发进程、有些在不久的将来会变的不再自由开源。

转载于:https://www.cnblogs.com/rzxiaojia/p/6292470.html

MySQL迁移至MariaDB相关推荐

  1. mysql迁移到mariadb_项目从MYSQL迁移至MARIADB教程

    准备数据库(MySQL),若已有MySQL,可忽略. build MySQL table; 连接MySQL; mysql -u root -p 创建数据表; mysql> create data ...

  2. Mysql迁移到Oracle方法

    目录 1简介... 1 2 准备... 1 2.1 环境说明... 1 3 安装... 2 4 配置... 2 5 使用... 2 5.1 验证实验... 2 5.2 问题分析... 4 6 延展.. ...

  3. 什么是腾讯云关系型数据库(MySQL/SQL Server/MariaDB/PostgreSQL详解)

    什么是腾讯云关系型数据库?腾讯云关系型数据库提供 MySQL.SQL Server.MariaDB.PostgreSQL详细介绍.腾讯云关系型数据库让您在云中轻松部署.管理和扩展的关系型数据库,提供安 ...

  4. mysql场景测试_【干货】不同场景下 如何进行MySQL迁移

    一.为什么要迁移 MySQL 迁移是 DBA 日常维护中的一个工作.迁移,究其本义,无非是把实际存在的物体挪走,保证该物体的完整性以及延续性.就像柔软的沙滩上,两个天真无邪的小孩,把一堆沙子挪向其他地 ...

  5. 【干货】不同场景下 如何进行MySQL迁移

    一.为什么要迁移 MySQL 迁移是 DBA 日常维护中的一个工作.迁移,究其本义,无非是把实际存在的物体挪走,保证该物体的完整性以及延续性.就像柔软的沙滩上,两个天真无邪的小孩,把一堆沙子挪向其他地 ...

  6. date oracle 表中_从 MySQL 迁移数据到 Oracle 中的全过程

    一.前言 这里记录一次将MySQL数据库中的表数据迁移到Oracle数据库中的全过程 ,使用工具 Navicat,版本 12.0.11 操作环境及所用工具: mysql5.7 oracle18c wi ...

  7. mariadb 没有mysql表_数据未插入mySQL表(MariaDB)

    我目前正在尝试实现一个python脚本,它将在我的SQL数据库(MariaDB)的表中插入两个虚拟值.我在我的覆盆子皮上使用拉伸操作系统.在 我首先在MariaDB的现有数据库中成功地创建了一个表.在 ...

  8. 记一次MongoDB性能问题(从MySQL迁移到MongoDB)

    最近忙着把一个项目从MySQL迁移到MongoDB,在导入旧数据的过程中,遇到了些许波折,犯了不少错误,但同时也学到了不少知识,遂记录下来,需要的朋友可以参考下 公司为这个项目专门配备了几台高性能务器 ...

  9. mysql子查询sysdate_Oracle向MySQL 迁移相关事项

    Oracle向MySQL 迁移相关事项 从Oracle移植到MySQL主要有六个方面的内容需要移植,一是表Table,包括表结构和数据,二是触发器Trigger,三是存储过程Procedure,函数f ...

最新文章

  1. 科大讯飞2019年创下历史最佳业绩,员工涨薪27%,营收来源妥妥「安徽之光」
  2. 查看目标网站--结构
  3. Python 3.X 要使用urllib.request 来抓取网络资源。转
  4. 三白话经典算法系列 Shell排序实现
  5. 《软件建模与设计: UML、用例、模式和软件体系结构》一一3.1 软件生存周期模型...
  6. 微信小程序动态更改标题栏_微信小程序实现动态设置页面标题的方法【附源码下载】...
  7. jsp 修改的员工select怎么_jsp修改的时候下拉框怎么取修改数据的值?
  8. oracle 19602,Oracle CPU Costing
  9. 灰色系统理论概论(个人总结)
  10. 汇编(五):第一个汇编程序
  11. matlab 数值拉普拉斯变换,数值拉普拉斯变换Python
  12. 老王的JAVA基础课:第1课 计算机基础知识
  13. WIFI智能电源插座是怎么连上路由器的?
  14. Integrating Factor
  15. 软文营销拒绝一成不变用故事建立情感依恋
  16. JAVA外卖项目第一天 技术选型和包结构
  17. 【转】Axure RP 9 最新版授权码(亲测有效)
  18. 和水花的100天(20211223 Week51-2)
  19. 用计算机的笔来画来画画说课稿,电脑画画教案设计
  20. SAP SD——创建销售订单

热门文章

  1. Logistic回归解析
  2. oppoR17手机计算机的隐藏功能,OPPO R17 Pro隐藏了很多你不知道的黑科技,让你高效使用手机...
  3. leetcode —— 216. 组合总和 III
  4. 基于人机交互设备测量用户情绪。
  5. DCIC巡游车与网约车运营特征对比分析-数据读取
  6. 【实践驱动开发2-001】wifi 在android 下的实现 - AR6000 系列移植详细步骤
  7. maven版本_Maven – 工作原理
  8. 在将varchar值id转换为int时失败_MySQL令人咋舌的隐式转换
  9. 信号与槽是如何实现的_苹果iPhone 12信号仍弱?网友反馈打不进电话需重启解决...
  10. google搜索引擎优化指南_Google谷歌SEO怎么优化?|新手入门完全指南