MariaDB之与MySQL的兼容性比较
MariaDB是为了替换MySQL的一个二进制发行版本
因为各种现实原因,MariaDB是用来替换同版本的MySQL的不同的二进制发行版本(如MySQL5.1与MariaDB5.1/5.2/5.3都是兼容的,MySQL5.5与MariaDB5.5是兼容的,实际上它与MariaDB10.0也同样兼容)。这意味着:
-
数据和表定义文件(.frm)是二进制兼容的
-
后文会介绍具体的不兼容特性
-
-
全部的客户端API、协议在结构上是一致的
-
全部的文件名称、二进制、路径、端口、套接字等等,都应该是相同的
-
全部的MySQL驱动(PHP、Perl、Python、Java、.NET、MyODBC、Ruby、MySQLC等等)在MariaDB中不需要修改即可使用
-
在与PHP5集成时有已知的安装问题(老版本的PHP5客户端会检查依赖库的兼容性存在缺陷)
-
-
mysql-client包在MariaDB中同样工作
-
共享的client库与MySQL的client库二进制兼容
这意味着大多数情况下,你可以轻松卸载MySQL并安装MariaDB,建议你这么做。(无需转换任何数据文件如果你使用的主版本号完全一致,如5.1).然而,你仍然需要通过执行mysql_upgrade来完成升级。这可以保证msyql的权限表和事件表得到更新以包含MariaDB新增的字段。
我们通过每个月将MySQL的代码合入到MariaDB来保证我们与MySQL的兼容性同时也会将Oracle在MySQL上所做的缺陷修改和新增特性加入到MariaDB中。
我们做了大量的工作来更新升级脚本,现在使用升级脚本将MySQL5.0升级到MariaDB5.1将会比升级到MySQL5.1更加容易.
换言之,MariaDB拥有很多的新增选项、扩展、存储引擎、在MySQL中还未修改的缺陷。你可以在MariaDB分布页面找到不同版本间特性差异。
MariaDB5.1与MySQL5.1的不兼容性
在一些极少的情况下,MariaDB必须牺牲于MySQL的兼容性来提供更多更好的信息,下文列出了使用MariaDB5.1替换MySQL5.1的过程中所有已知的用户级不兼容性:
-
安装包名以MariaDB打头而非MySQL
-
计时不同,因为MariaDB在很多情况下比MySQL更快
-
mysqld在读取my.cnf配置文件时也会读取mariadb段
-
不能使用与MariaDB不同版本的MySQL的二进制存储引擎库与MariaDB协同工作。(这是因为服务器内部结构THD对于MariaDB和