MariaDB 5.1与MySQL 5.1的不兼容性

为了让MariaDB比MySQL提供更多更好的信息,极少情况下MariaDB会出现不兼容情况。

如果使用MariaDB 5.1替代MySQL5.1,您将看到如下列举的全部已知用户级不兼容情况:

[list]
[]安装的包名称,用MariaDB代替MySQL。
[
]时间控制可能不同,MariaDB在许多情况下比MySQL快。
[]mysqld在MariaDB读取是my.cnf中[MariaDB ]的部分。
[
]如果它不是完全相同的MariaDB编译版本,不能使用仅提供二进制的存储引擎库给MariaDB使用 (这是因为服务器内部结构THD在MySQL和MariaDB之间不同。这也是与常见的MySQL版本不同的)。这应该不是问题,因为对于大多数人不加载新存储引擎,MariaDB比MySQL带有更多的存储引擎。
[]CHECKSUM TABLE可能产生不同的结果,由于MariaDB并不忽视NULL的列,MySQL 5.1忽略(未来的MySQL版本应该计算checksums和MariaDB一样)。在MariaDB 开启mysqld –old选项,您可以得到“旧式”的校验和。但是要注意,这个MyISAM存储引擎和Aria 存储引擎在MariaDB实际上在内部使用新的checksum,因此,如果您使用的是—old , CHECKSUM命令将会更慢,因为它需要,一行一行的计算checksum。
[
]慢速查询日志有更多信息关于查询, 如果有一个脚本解析慢速查询日志这可能是一个问题。
[*]MariaDB默认情况下比MySQL需要更多的内存,因为我们有默认情况下启用Aria存储引擎处理内部临时表。如果需要MariaDB使用很少的内存(这是以牺牲性能为代价的),您可以设置aria_pagecache_buffer_size的值为 1M(默认值为128M)。
[/list]

如果正在使用MariaDB的新命令选项,新特性或新存储引擎,那么就不能在MySQL和MariaDB之间轻易来回切换了。

MariaDB 5.2与MySQL 5.1的不兼容性

同MariaDB 5.1和MySQL 5.1的一样,再补充一条:

新增SQL_MODE的取值:IGNORE_BAD_TABLE_OPTIONS。

如果未设置该值,使用一个表、字段或索引的属性(选项)不被支持的存储引擎将会导致错误。

这个变化可能引起警告不正确的表定义出现在错误日志中,请利用mysql_upgrade修复这个警告。

实际上,MariaDB 5.2是MariaDB 5.1和MySQL 5.1替代品。