自从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
然后就搞定了!尽情折腾吧