1

TL;DL

如果你正在使用 MySQL 8.0 及以上版本或者兼容 MySQL 8.0 的数据库,推荐选择 MySQL Connector/J 8.3.0 版本。

MySQL Connector/J

MySQL Connector/J 是 MySQL 官方提供的用于 Java 应用程序连接 MySQL 数据库的 JDBC 驱动。它支持 JDBC 4.2 API,并实现了 X DevAPI。

在选择用于生产环境的 MySQL Connector/J 版本时,需要考虑多个因素,以确保与你的项目需求和环境兼容性。本文将从 MySQL 服务器版本、Java 版本、JDBC 版本、TLS 版本、特性支持、生命周期等几个方面来讨论如何选择适合的 MySQL Connector/J 版本。

1. MySQL 服务器版本

如果你的 MySQL 服务器版本为 8.0,甚至已经在用 MySQL 8.3,建议选择 MySQL Connector/J 8.3。

如果你的 MySQL 服务器版本为 5.5,5.6,5.7,或 8.0,可以选择 MySQL Connector/J 5.1,需要注意的是,对于 MySQL 5.7 服务器,需要选择 MySQL Connector/J 5.1.37 及以上版本。

另外,MySQL 5.5,5.6,5.7 已经 EOL,建议升级到 MySQL 8.0 最新小版本,即 MySQL 8.0.35 或 8.0.36。

如果你的 MySQL 服务器版本为更古早的版本,you would better keep it with current setting.

确保所选的驱动版本与你的 MySQL 服务器版本兼容,以避免连接或性能问题。

2. Java 版本

MySQL Connector/J 8.3 支持 JRE/JDK 8 及以上版本。

MySQL Connector/J 5.1 支持 JRE/JDK 5 及以上版本。

如果你的项目用到了 Java,那么应该选择 JDK 8 及以上版本。

3. JDBC API

JDBC(Java Database Connectivity)API 版本也可以作为选择驱动时的考虑因素。

MySQL Connector/J 8.3 支持 JDBC 4.2 API。

MySQL Connector/J 5.1 从 5.1.37 版本开始支持 JDBC 4.2 API。

4. TLS 版本

对于 TLS v1.3,从 MySQL Connector/J 8.0.19 以及 MySQL 8.0.16 开始支持,需要注意的是,从 MySQL 8.0.18 开始,组复制支持 TLS v1.3。

对于 TLS v1.2,从 MySQL Connector/J 5.1.46 以及 MySQL 5.7.28/8.0.4 开始支持。

对于 TLSv1 和 TLSv1.1,从 MySQL Connector/J 8.0.26 开始被废弃,并从 MySQL Connector/J 8.0.28 被移除。

此外,还需注意,TLS 需要 Java 版本支持。如果你需要使用 TLS v1.3,那么需要搭配更高版本的 JDK 8,比如 Oracle Java 8u261。从 Java 11 开始,JDK 默认支持 TLSv1.3。

当然,也需要更新版本的 openssl,比如,当使用 TLS v1.3 时,需要 openssl 1.1.1。

5. 特性支持

MySQL Connector/J 的不同版本提供了不同的特性和支持。例如,MySQL Connector/J 8.x 版本提供了对 MySQL 8.0 新特性的支持,如窗口函数、公共表表达式(CTE)、角色权限等。此外,新版本还包含性能改进、错误修复和安全更新。

6. 生命周期

对于 MySQL Server 而言,由于发版模型发生了变化,MySQL 8.0 已不再追加新特性,目前已经发布了 MySQL 8.1.0,8.2.0 和 8.3.0 三个创新版本(Innovation Release),期待 MySQL 8.4.0 LTS 的到来。

不过,MySQL Connector/J 并不遵循此发版模型,而是继承、延续为 8.x 系列 GA 版本。

MySQL Connector/J 8.1 取代了 8.0 系列,最后一个 8.0 系列的版本为 8.0.33。

总结

建议使用最新版本的 MySQL Connector/J,以获得更好的安全性和兼容性。

目前,推荐使用 MySQL Connector/J 8.3.0。

  • Maven 配置为:
<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <version>8.3.0</version>
</dependency>
  • Gradle 配置为:
implementation group: 'com.mysql', name: 'mysql-connector-j', version: '8.3.0'

-- END --

本文由mdnice多平台发布


严少安
6 声望3 粉丝

DBA