MySQL 的 Connector/J 可以与 MariaDB 一起使用吗?

Posted

技术标签:

【中文标题】MySQL 的 Connector/J 可以与 MariaDB 一起使用吗?【英文标题】:Does MySQL's Connector/J work with MariaDB? 【发布时间】:2019-12-01 00:36:55 【问题描述】:

我正在尝试使用来自 here 的 Connector/J 连接到我的 MariaDB 数据库,但这无法正常工作并记录 MariaDB 日志`

"[警告] 与 db 的连接 12 中止:'enwikt_parsed' 用户: 'javawiki' 主机:'localhost'(读取通信时出错 数据包)”。

`

我突然想到,我只是假设 mysql 中的 Connector/J 可以与 MariaDB 一起使用,但现在我不太确定。我知道 MariaDB 有自己的 Java API/连接器,但我使用别人的代码来parse wiktionary,因此不能使用它。

在我尝试一些更复杂的解决方案之前,我想知道我是否正在尝试修复一些原本不打算以这种方式使用的东西。

【问题讨论】:

你能分别分享你的数据库和连接器的版本吗? 我正在使用 Connector/J 8.0.17 和 MariaDB 10.4.6-1 - 我认为“在实践中”的兼容性就足够了。 由于连接器可以向后兼容,理想情况下它应该可以工作。但是您可以尝试降级您的连接器。在mysql mariadb兼容性的规范中,这些版本都没有列出来,所以不好说。 我应该降级到哪个版本?或许降级 MariaDB 会更好吗? 您可以尝试将 MariaDB 降级到 10.2(只是推测)。也在这里分享结果 【参考方案1】:

是的,MySQL 的 Connector/J 与 MariaDB 兼容。您需要检查版本。

出于所有实际目的,MariaDB 是替代 相同的 MySQL 版本(例如 MySQL 5.1 -> MariaDB 5.1、MariaDB 5.2 和 MariaDB 5.3 是兼容的。 MySQL 5.5 与 MariaDB 5.5 兼容,在实践中也与 MariaDB 10.0 兼容,MySQL 5.6 与 MariaDB 10.0 兼容,MySQL 5.7 与 MariaDB 10.2 兼容)

参考:https://mariadb.com/kb/en/library/mariadb-vs-mysql-compatibility/

所有 MySQL 连接器(php、Perl、Python、Java、.NET、MyODBC、Ruby、 MySQL C 连接器等) 与 MariaDB 保持不变。

【讨论】:

以上是关于MySQL 的 Connector/J 可以与 MariaDB 一起使用吗?的主要内容,如果未能解决你的问题,请参考以下文章

与 MySql 的连接正在自动中止。如何正确配置Connector/J?

我可以使用 MySQL Connector/J 执行多个用分号分隔的查询吗? [复制]

MySQL Connector/J 6.x jdbc.properties 配置, mysql-connector-java-6.0.4.jar 异常

MySQL Connector/J 6.x jdbc.properties 配置, mysql-connector-java-6.0.4.jar 异常

在 MySQL 中通过 Connector/J 使用 getGeneratedKeys 和批量插入

为啥 rewriteBatchedStatements 对于 mysql connector/j 默认为 false?