MySQL可以无缝地替换为MariaDB,还是可以在这种情况下改变?

时间:2010-11-05 13:38:19

标签: php mysql jdbc mariadb

如果我用MariaDB服务器(Maria& XtraDB存储)而不是MySQL(MyISAM和InnoDB)替换MySQL 5.1服务器,那么大多数MySQL客户端软件(包括用PHP 5.2和Java SE 1.6制作的应用程序) ...

  1. 只是保持工作而不做任何改动(可能会有轻微的回归)?
  2. 或者我是否必须更换/重新配置客户端驱动程序(比如使用其他JDBC驱动程序类和连接字符串)?
  3. 或者我甚至可以更改应用程序代码吗?

6 个答案:

答案 0 :(得分:37)

http://kb.askmonty.org/v/mariadb-versus-mysql

  

所有MySQL连接器(PHP,Perl,Python,Java,MyODBC,Ruby,MySQL C连接器等)都与MariaDB保持不变。

答案 1 :(得分:1)

我多年来一直使用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

答案 2 :(得分:1)

  

只是保持工作而不做任何改变(带有轻微的回归   也许)?

只要您使用相同的版本替换,就不会有任何问题。如果您当前正在使用MySQL 5.1,则可以使用MariaDB 5.1替换。如果您使用5.5,请使用相应的。 MariaDB v5.2和v5.3以及5.1的增强版本。

  

或者我必须更换/重新配置客户端驱动程序(比如使用其他驱动程序)   JDBC驱动程序类和连接字符串)?

你不应该。 MySQL和MariaDB都使用相同的协议和整体语法,但在某些情况下可能会有一些例外。另一个答案中引用的网址是一个很好的资源:http://kb.askmonty.org/v/mariadb-versus-mysql

关于司机'许可证,如果您计划在商业上分发您的项目,则存在差异。在这种情况下,我建议您仔细检查许可条款,如果您有任何疑虑,请按照另一个答案中的建议使用连接器的MariaDB / SkySQL版本。查看http://www.skysql.com/downloads/java-cc-connectors-mariadb了解详情。

  

或者我甚至可以更改应用程序代码?

应用程序代码应保持不变。

答案 3 :(得分:0)

只需要一点反馈就可以了解与mysql驱动程序/ CodeIgniter的兼容性。几分钟前我遇到了BIT属性类型的问题。

未从服务器恢复值。它总是空的。 我使用的是使用“mysql”驱动程序的标准CI数据库配置。 将database.php中的驱动程序更改为“mysqli”后,问题就解决了。

如果您使用的是旧的mysql驱动程序,可能会有一些差异。

$db['default']['dbdriver'] = 'mysqli';

MariaDB客户端API版本5.5.40

答案 4 :(得分:0)

MariaDB是MySQL进化的。

与MySQL和MariaDB背后的开发人员相同。几乎是相同的(如果不是,我只能说MariaDB是MySQL改进的点)。

您无需在PHP中进行任何更改。

答案 5 :(得分:-1)

与流行的看法相反,用于连接到Java并与MySQL交互的默认Connector / J JDBC驱动程序与MariaDB不能很好地兼容。要使用MariaDB,您需要让您的应用程序使用Drizzle或SkySQL驱动程序。

http://kb.askmonty.org/en/mariadb-faq-is-there-any-java-connector-for-mariadb-than-the-one-from-mysql