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
然后就搞定了!尽情折腾吧
上一篇: 一个简单的MySQL备份Shell脚本