如果我用MariaDB服务器(Maria和XtraDB存储)而不是MySQL(MyISAM和InnoDB)替换MySQL 5.1服务器,那么大多数MySQL客户端软件(包括用PHP 5.2和Java SE 1.6制作的应用程序)......
http://kb.askmonty.org/v/mariadb-versus-mysql
所有MySQL连接器(PHP,Perl,Python,Java,MyODBC,Ruby,MySQL C连接器等)与MariaDB一起保持不变。
多年来我一直使用Mariadb替代Oracle的MySQL。它更快,更可靠。需要很少关注apt,但没有什么严重的。此外,Mariadb还有一个小细节;它在日志中看到[错误]“PHP警告:mysql_connect():标头和客户端库次要版本不匹配”。除了开始手动编译之外,我还没有找到任何其他解决方案:askMonty。
$php -i | grep 'Client API'
Client API version => 5.3.7-MariaDB
Client API library version => 5.3.7-MariaDB
Client API header version => 5.1.61
Client API version => 5.3.7-MariaDB
只是保持工作而不做任何改变(可能会有轻微的回归)?
只要您使用相同的版本替换,就不会有任何问题。如果您当前正在使用MySQL 5.1,则可以使用MariaDB 5.1替换。如果您使用5.5,请使用相应的。 MariaDB v5.2和v5.3以及5.1的增强版本。
或者我是否必须替换/重新配置客户端驱动程序(比如使用另一个JDBC驱动程序类和连接字符串)?
你不应该。 MySQL和MariaDB都使用相同的协议和整体语法,但在某些情况下可能会有一些例外。另一个答案中引用的URL是一个很好的资源:http://kb.askmonty.org/v/mariadb-versus-mysql
关于驾驶执照,如果您计划在商业上分发您的项目,则存在差异。在这种情况下,我建议您仔细检查许可条款,如果您有任何疑虑,请按照另一个答案中的建议使用连接器的MariaDB / SkySQL版本。查看http://www.skysql.com/downloads/java-cc-connectors-mariadb了解详情。
或者我甚至可以更改应用程序代码?
应用程序代码应保持不变。
关于与mysql驱动程序/ CodeIgniter的兼容性的一点反馈。几分钟前我遇到了BIT属性类型的问题。
未从服务器重新获取值。它总是空的。我使用的是使用“mysql”驱动程序的标准CI数据库配置。在将database.php中的驱动程序更改为“mysqli”之后,问题就解决了。
如果您使用旧的mysql驱动程序,可能会有一些差异。
$db['default']['dbdriver'] = 'mysqli';
MariaDB客户端API版本5.5.40
MariaDB是MySQL的发展。
它也是MySQL和MariaDB背后的开发人员。它几乎是相同的(如果不是,我只能说MariaDB是MySQL改进的,dot)。
您不必在PHP中进行任何更改。
与流行的看法相反,用于连接到Java并与Java交互的默认Connector / J JDBC驱动程序与MariaDB不能很好地兼容。要使用MariaDB,您需要让您的应用程序使用Drizzle或SkySQL驱动程序。