作者:或许就是一场梦_913 | 来源:互联网 | 2014-05-29 08:43
MariaDB是一个采用Maria存储引擎的MySQL分支版本,是由原来MySQL的作者MichaelWidenius创办的公司开发的免费开源的数据库服务器。RedHat企业发行版RHEL7将用MariaDB替代MySQL,一旦RHEL完成切换,基于RHEL的社区版CentOS将会紧跟着作出
MariaDB 是一个采用 Maria 存储引擎的 MySQL 分支版本,是由原来 MySQL 的作者 Michael
Widenius 创办的公司开发的免费开源的数据库服务器。Red Hat 企业发行版RHEL 7 将用 MariaDB 替代
MySQL,一旦 RHEL 完成切换,基于 RHEL 的社区版 CentOS 将会紧跟着作出改变。所以呢,使用 CentOS
系统的这个 VPS 或迟或早都是要切换到 MariaDB 的,大势所趋啊。
下面先摘录一点背景介绍,然后是我在 CentOS 6.4 上从 MySQL 5.5.31 迁移至 MariaDB 5.5.31
的操作记录。最后是我后来发现一个较好的迁移方法。
背景介绍
MySQL是世界上最流行的开源关系数据库。2008 年,Sun 收购 MySQL。然后 2010 年,甲骨文又收购了 Sun,于是
MySQL 落入了甲骨文(Oracle)手中。Oracle 与开源社区关系的一直不太好,甚至 MySQL
也被弄成了社区版和企业版,不能免费商业使用;MySQL 企业版的新功能不公开源代码,这样让用户很不爽。MariaDB
则没有这方面的问题。与 MySQL 相比,MariaDB 的优势在于:
可免费商业使用(MySQL 则有社区版和企业版之分,拜 Oracle 所赐)
Maria 存储引擎
PBXT 存储引擎
XtraDB 存储引擎
FederatedX 存储引擎
更快的复制查询处理
线程池
运行速度更快
更多的扩展功能模块
支持 Unicode 排序
原来 MariaDB 的设计初衷之一就是完全兼容 MySQL,包括 API 和客户端协议,使之能轻松成为 MySQL
的代替品,所以 MySQL 迁移到 MariaDB 基本上可以称之为“升级”,就好像软件升级版本一样。MariaDB
的技术文档上是这样写的:
如果是相同的基础版本(如 5.5),可以直接卸载 MySQL 然后安装
MariaDB,这样就可以用了。甚至不需要备份然后还原数据库。当然,保险起见,升级前将所有的数据库都备份一下还是非常有必要的,以防万一。
如果 MariaDB 的主版本高,在经过上面的卸载 MySQL 再安装 MariaDB 操作之后,需要使用 mysql_upgrade
升级一下。是的,甚至连命令行都与使用 MySQL 的时候一样。
所有原先的客户端和连接器(PHP、Perl、Python、Java 等)都不需要做任何改变就能正常工作,因为 MariaDB 与
MySQL 使用的是相同的客户端协议,并且客户端库文件也是二进制兼容的。
官方提供了各操作系统的安装方法:
https://downloads.mariadb.org/mariadb/repositories/
我的版本是CentOS5.9 64Bit 使用Yum安装,编辑/etc/yum.repos.d/MariaDB.repo
# MariaDB 5.5 CentOS repository list - created 2013-09-25 01:55 UTC
# http://mariadb.org/mariadb/repositories/
[mariadb]
name=MariaDB
baseurl=http://yum.mariadb.org/5.5/
centos5-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
Installing MariaDB with YUM
#yum install MariaDB-server MariaDB-client
After Installation
After the installation completes, start MariaDB with:
#/etc/init.d/mysql start
# mysql
mysql: Unknown OS character set 'ISO-8859-15'.
mysql: Switching to the default character set 'latin1'.
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 1
Server version: 5.5.33a-MariaDB MariaDB Server
Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show global variables like "version";
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| version | 5.5.33a-MariaDB |
+---------------+-----------------+
1 row in set (0.00 sec)
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
+--------------------+
3 rows in set (0.00 sec)
MariaDB [(none)]>