Linux下将数据库从MySQL迁移到MariaDB的基础操作教程

自从2012年来,维基百科已经开始从MySQL迁移到MariaDB的过程,是维基媒体数据库架构变革的一个重大里程碑,将英文和德文版的维基百科数据库Wikidata移植到了MariaDB 5.5版本上。
在过去几年中,维基百科一直使用 Facebook 的 MySQL 5.1 衍生版本 作为我们的产品数据库,构建版本号是r3753。我们很高兴该产品的性能表现,Facebook 有着全世界最棒的数据库工程师,他们为 MySQL 生态系统带去了很多改进。

现在 MariaDB 的优化器的增强、Percona 的 XtraDB 的特性以及 Oracle 5.5 的一些原因促使我们考虑升级的问题。同样重要的是,我们作为自由文化运动的支持者,维基媒体基金会强烈希望使用自由软件项目,不希望使用不同的许可证来区分自由版和企业版,我们非常欢迎和支持 MariaDB 基金会作为一个非盈利机构对 MySQL 相关数据库社区做的工作。

在做正式迁移前我们做了大量的准备工作,包括兼容性测试和性能测试,详情请看官方说明。

MySQL是世界上最流行的开源关系数据,它的名字取 自于创始人Michael "Monty" Widenius的长女“My”。2008年,Sun收购MySQL;2009年,甲骨文收购了Sun,MySQL落入了与开源社区关系紧张的甲骨文手中。Widenius与他的旧团队在2009初创建了MySQL的分支MariaDB,它的名字取自于Widenius的幼女“Maria”,他希望通过保留核心开发者和日益增长的社区帮助MariaDB挑战甲骨文的MySQL。

甲骨文与开源社区关系的恶化正促使许多发行版用MariaDB取代MySQL,现在使用MySQL的流行网站维基百科也宣布从MySQL迁移到MariaDB,部分原因是甲骨文的MySQL有免费版和企业版,而企业版的新功能没有公开源码,而MariaDB则没有这方面的问题。

ArchLinux已宣布将使用MariaDB作为MySQL的默认提供包,openSUSE已经在新近发布的12.3版中默认使用MariaDB, 连Fedora也正在考虑更换为MariaDB....
接下来,我们就来看一下Linux环境下从MySQL迁移到MariaDB的实际操作方法。

对 Arch 用户来说很简单,照着官方新闻里面的来就是了:

systemctl stop mysqld
pacman -S mariadb libmariadbclient mariadb-clients
systemctl start mysqld
mysql_upgrade -p

而对于 openSUSE 就更傻瓜式了,毕竟是默认的嘛: zypper in mariadb 一句就够。

至于 Debian/Ubuntu 用户就要稍微复杂一些,不过整个过程还是很流畅的:

首先到 MariaDB 官方的 Repository Configuration Tool 去选一个合适的源,然后把给出来的地址放到 /etc/apt/sources.list 文件底部:

# MariaDB 5.5 repository list - created 2013-03-26 14:20 UTC
# http://mariadb.org/mariadb/repositories/
deb http://mirror2.hs-esslingen.de/mariadb/repo/5.5/debian squeeze main
deb-src http://mirror2.hs-esslingen.de/mariadb/repo/5.5/debian squeeze main

接下来执行以下命令:

apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
apt-get update
apt-get install mariadb-server mariadb-client

于是 MySQL(或者 Percona)就自动卸载并且替换成 MariaDB 了,在某些具体环境下,可能还需要执行这些命令:

apt-get autoremove
apt-get upgrade # or apt-get dist-upgrade
mysql_upgrade -p

然后就搞定了!尽情折腾吧

(0)

相关推荐

  • MySQL分支选择参考:Percona还是MariaDB

    在MySQL被Oracle收购以后,越来越多的人对于MySQL的前景表示了担忧,对于开源的MySQL,或多或少对于Oracle自家的数据库产品产生冲击,这个开源免费的MySQL 对于Oracle更多的是包袱而不是资产.比如淘宝就从Oracle转成了MySQL,一些大型互联网公司也在推行去IOE(I:IBM,O:Oracle,E:EMC),甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险. Percona 在介绍 Percona 之前,首要要介绍的是

  • 从MySQL 5.5迁移到Mariadb 10.1.14所遇到的问题

    迁移计划如下: 1.备份MySQL 5.5的数据库,对指定库进行备份. 2.还原到Mariadb,然后建立复制. 3.然后就可以愿意啥时候切换就啥时候切换. 遇到的问题: 因为一般都是innodb,所以我想用xtrabackup工具备份.备份后发现还原需要依赖innodb的表空间切换. 1.表空间切换,必须要打开innodb_file_per_table.也就是说所有的表都要有独立的文件.有一些表虽然是innodb但是存在ibdata下面. 幸好可以申请维护窗口,简单粗暴的重建了. 2.从MyS

  • 浅谈MySQL和mariadb区别

    MariaDB是MySQL源代码的一个分支,在意识到Oracle会对MySQL许可做什么后分离了出来(MySQL先后被Sun.Oracle收购).除了作为一个Mysql的"向下替代品",MariaDB包括的一些新特性使它优于MySQL. 这两个数据库究竟有什么本质的区别,我看mariadb文件夹BIN中还是mysql*.exe,除了MySQL会被ORACLE闭源外,而mariadb则开源,他俩之间到底还有什么本质区别没有? 区别一: MariaDB不仅仅是Mysql的一个替代品,它的主

  • 项目从MYSQL迁移至MARIADB教程

    准备数据库(MySQL),若已有MySQL,可忽略. build MySQL table; 连接MySQL; mysql -u root -p 创建数据表; mysql> create database demo; mysql> use demo; mysql> create table pet(name varchar(30), owner varchar(30), species varchar(20), sex char(1)); 添加数据表内容; mysql> insert

  • Centos7 下mysql重新启动MariaDB篇

    前言 MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可.开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险.[3] MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品.在存储引擎方面,10.0.9版起使用XtraDB(名称代号为Aria)来代替MySQL的InnoDB # yum install mysql -y # mysql ERRO

  • Mysql的基础使用之MariaDB安装方法详解

    我首次用mysql是在ubuntu上,现在用的是linux 中的Red Hat 分支的centOS 7 ,安装时发现通常用的都是MariaDB 来代替mysql,通过资料查询发现Mariadb是mysql的其中的一种分支,由mysql的创始人带领的团队所开发的mysql分支的一种版本,因为mysql受到被Oracle收购后的日渐封闭与缓慢的更新,众多Linux发行版逐渐抛弃了这个人气开源数据库,使MySQL在各大Linux发行版中的失势由于不满MySQL被Oracle收购后的日渐封闭与缓慢的更新

  • Linux下将数据库从MySQL迁移到MariaDB的基础操作教程

    自从2012年来,维基百科已经开始从MySQL迁移到MariaDB的过程,是维基媒体数据库架构变革的一个重大里程碑,将英文和德文版的维基百科数据库Wikidata移植到了MariaDB 5.5版本上. 在过去几年中,维基百科一直使用 Facebook 的 MySQL 5.1 衍生版本 作为我们的产品数据库,构建版本号是r3753.我们很高兴该产品的性能表现,Facebook 有着全世界最棒的数据库工程师,他们为 MySQL 生态系统带去了很多改进. 现在 MariaDB 的优化器的增强.Perc

  • Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法

    本文档主要描述了Linux下python数据库驱动的安装和配置,用来实现在Linux平台下通过python访问MySQL.Oracle.SQL Server数据库. 其中包括以下几个软件的安装及配置: unixODBC FreeTDS pyodbc cx_Oracle 欢迎转载,请注明作者.出处. 作者:张正 QQ:176036317 如有疑问,欢迎联系. 本文档主要描述了Linux下python数据库驱动的安装和配置,用来实现在Linux平台下通过python访问MySQL.Oracle.SQ

  • Linux 下C语言连接mysql实例详解

    Linux 下C语言连接mysql实例详解 第一步: 安装mysql, 参考:http://www.jb51.net/article/39190.htm 第二步: 安装mysql.h函数库 sudo apt-get install libmysqlclient-dev 执行之后就可以看到/usr/include/MySQL目录了 然后开始我们的链接. 首先看我的数据库 mysql> show databases; +--------------------+ | Database | +----

  • linux下导入、导出mysql数据库命令的实现方法

    一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径): 1.导出数据和表结构: mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql /usr/local/mysql/bin/ mysqldump -uroot -p abc > abc.sql 敲回车后会提示输入密码 2.只导出表结构 mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql /usr/local/mysql/bin/ mysqldump -uroo

  • Linux下二进制编译安装MySql centos7的教程

    // 当时我装这个也是折腾了一下午 , 所以写一个笔记记录一下; //如果哪里有问题的话我们可以一起讨论( qq: 2970911340,邮箱+@qq.com),这也是我第一次写博客 练练手 1. 安cmake工具 # yum install -y cmake 2. 创建mysql用户 #useradd -s /sbin/nologin mysql  //设置为非登陆用户(安全) 3. 创建数据目录,该目录是用于数据库初始化时生成的库.表.日志等,不要直接在该目录下存放东西 # mkdir -p

  • linux下利用Docker安装mysql的步骤

    作为一个测试人员,在学习的过程中,可能经常需要去在linux下安装一些软件,有的软件通过搜索别人的博客教程进行安装的话,随着一些软件的升级,以及虚拟机/服务器镜像版本不一致等外部因素,都有可能导致安装软件出现各种不可预知的问题,到时候还得去搜索资料逐一解决问题,挺耽误时间的. 而且,像linux下这些软件的安装,一般都是运维的事情,测试作为学习使用的话,安装好一个mysql数据库用于学习使用就行,新手不建议在linux下下载源码去安装软件,容易出问题. 接下来为大家演示一下,如何通过docker

  • Linux下刚安装完mysql修改密码的简单方法

    在Centos中安装MySQL后默认的是没有root密码的,默认的是回车, 那么为了方便需要修改密码. 没有密码为MYSQL加密码: mysql -uroot -p 回车 提示输入密码,为空回车 update mysql.user set password=PASSWORD('12345678') where user='root'; 刷新权限表,输入如下命令 flush privileges; 退出 quit 以上所述是小编给大家介绍的Linux下刚安装完mysql修改密码的简单方法,希望对大

  • LINUX下Oracle数据库用户创建方法详解

    本文实例分析了LINUX下Oracle数据库用户创建方法.分享给大家供大家参考,具体如下: 1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切换成oracle用户) 2)首先要打开监听器命令如下:lsnrctl start,然后sqlplus /nolog ,然后conn /as sysdba,然后startup(这一部分命令是用来打开oracle数据库) 3)查看我们常规将用户表空间放置的位置:执行如下sql: SQL> select

  • Linux下MongoDB数据库实现自动备份详解

    本文主要给大家介绍的是关于Linux下MongoDB数据库实现自动备份的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 一.创建MongoDB备份目录 mkdir -p /data/mongodb_bak/mongodb_bak_now mkdir -p /data/mongodb_bak/mongodb_bak_list 二.新建MongoDB数据库备份脚本(/data/mongodb_bak/MongoDB_bak.sh) #!/bin/bash #backup MongoDB

  • 解决linux下redis数据库overcommit_memory问题

    背景 公司的redis有时background save db不成功,通过log发现下面的告警,很可能由它引起的: [13223] 17 Mar 13:18:02.207 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf a

随机推荐