27

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

  1. 只是继续工作而不做任何更改(可能会有轻微的回归)?
  2. 还是我必须替换/重新配置客户端驱动程序(比如使用另一个 JDBC 驱动程序类和连接字符串)?
  3. 或者我什至需要更改应用程序代码?
4

6 回答 6

37

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

所有 MySQL 连接器(PHP、Perl、Python、Java、MyODBC、Ruby、MySQL C 连接器等)都可以在 MariaDB 中正常工作。

于 2010-11-05T13:46:37.547 回答
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
于 2012-06-04T16:44:26.747 回答
1

只是继续工作而不做任何更改(可能会有轻微的回归)?

只要你用相同的版本替换,你应该没有任何问题。如果您当前使用的是 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

或者我什至需要更改应用程序代码?

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

于 2013-12-12T00:07:20.660 回答
0

关于与 mysql 驱动程序/CodeIgniter 的兼容性的一点反馈。几分钟前我遇到了关于 BIT 属性类型的问题。

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

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

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

MariaDB 客户端 API 版本 5.5.40

于 2015-05-07T09:19:17.253 回答
0

MariaDB 是 MySQL 演变而来的。

支持 MySQL 和 MariaDB 的也是同一位开发人员。几乎是一样的(如果不是,我只能说 MariaDB 是 MySQL 改进的,点)。

您不必在 PHP 中进行任何更改。

于 2019-04-09T01:54:08.813 回答
-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

于 2012-04-13T20:26:52.737 回答