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多平台发布
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。