MySQL Connector/J 8.0发布说明/ MySQL Connector/J 8.0.22的变化(2020-10-19,通用可用性)

MySQL Connector/J 8.0.22(2020-10-19,通用可用性)更改

8.0.22版本是MySQL Connector/J 8.0系列的最新通用可用性版本。它适用于MySQL Server 8.0、5.7和5.6版本。它支持JDBC 4.2 API,并实现了X DevAPI。

添加或更改的功能

  • 安全增强:以前,LOAD data语句的LOCAL数据加载能力只能在客户端通过对客户端可访问的所有文件启用或使用connection属性完全禁用来控制allowLoadLocalInfile.一个新的连接属性,allowLoadLocalInfileInPath,已引入允许本地数据只从特定的文件路径加载;中选项的描述配置属性获取详细信息。

  • X DevAPI:一个新的连接属性,xdevapi.compression-algorithms,介绍了用于指定要使用的压缩算法以及它们将被协商的优先级。

    还有旧的连接属性xdevapi.compression-algorithm(没有一个年代在其名称的末尾)已被重新命名为xdevapi.compression-extensions;它的功能与以前一样(为压缩算法提供实现),但其值的语法已经改变:算法的三元组中的每个元素现在都由冒号(:)分隔。看到使用X DevAPI进行连接压缩获取详细信息。

  • X DevAPI:Connector/J不再支持X协议的异步变体;连接属性useAsyncProtocol而且asyncResponseTimeout现在已弃用,使用时不起作用。

  • X DevAPI:Connector/J现在支持用于X DevAPI会话的SSL客户端证书的Java密钥存储库。为了实现这个目的,引入了以下新的连接属性:

    • xdevapi.ssl-keystore

    • xdevapi.ssl-keystore-type

    • xdevapi.ssl-keystore-password

    看到使用SSL安全连接获取详细信息。

  • 当尝试在Windows系统上使用Connector/J和命名管道打开到MySQL服务器的多个连接时,尝试有时会失败,提示“所有管道实例都忙”错误。通过此修复,如果使用connection属性设置了超时connectTimeout或者方法DriverManager.setLoginTimeout (), Connector/J将重复重试打开命名管道,直到达到超时时间或成功打开命名管道。作为这种新行为的副作用,即使是由“所有管道实例都忙”以外的错误引起的失败命名管道连接抛出错误,也会有与超时时间相等的延迟。(Bug #31711961, Bug #98667)

  • 当连接选项sslMode设置为VERIFY_IDENTITY, Connector/J现在根据服务器X.509证书中主题替代名称(SAN)扩展下提供的主机名或IP地址验证连接字符串中的主机名。此外,如果证书中没有提供SAN,或者SAN不包含任何DNS名称或IP地址条目,那么现在将执行针对Common Name (CN)的验证。在SAN或CN下,证书中列出的主机名可以包含RFC 6125标准中指定的通配符。感谢Daniël van Eeden对补丁的贡献。(Bug #31443178, Bug #99767, Bug #28834903, Bug #92903)

  • 当使用Connector/J时,AbandonedConnectionCleanupThread线程现在可以通过设置新的系统属性完全禁用com.mysql.cj.disableAbandonedConnectionCleanup真正的在配置JVM时。该特性适用于运行良好的应用程序,这些应用程序总是关闭它们创建的所有连接。感谢Andrey Turbanov对新功能的贡献。(Bug #30304764, Bug #96870)

  • Connector/J现在支持使用simple或SASL (sran - sha -1)与MySQL企业服务器进行客户端身份验证LDAP身份验证Windows和Linux平台。

  • 现在可以防止Connector/J分别退回到系统范围的信任存储库和密钥存储库进行服务器和客户端身份验证。对于JDBC连接,有两个新的连接属性,fallbackToSystemKeyStore而且fallbackToSystemTrustStore,已被引入控制。而这些属性真正的默认情况下(启用了回退),将它们设置为禁用回退。看到使用SSL安全连接获取详细信息。

    X DevAPI:类似的控制回退X DevAPI连接提供了新的连接属性,xdevapi.fallback-to-system-keystore,xdevapi.fallback-to-system-truststore

  • JBoss的集成类已经从Connector/J中移除。

错误修复

  • 在负载均衡设置中,如果连接参数loadBalanceBlacklistTimeout设置后,即使重新建立连接,曾经不可用的服务器仍然保留在阻塞列表中,这将影响系统性能。有了这个修复,一旦服务器再次可用,它就会从阻塞列表中删除。(Bug #31699357, Bug #96309)

  • 使用一个PreparedStatement存储日期进入数据库有时会导致NullPointerException.这是因为一些作业缺失了ServerPreparedQueryBindValue.clone (),此补丁修复了该问题。(Bug #31418928, Bug #99713)

  • 当客户端试图使用服务器的X协议端口建立JDBC连接时,连接器/J抛出异常ArrayIndexOutOfBoundsException.有了这个修复,Connector/J会在端口使用错误协议时抛出正确的异常,并返回正确的错误消息。(Bug #31083755, Bug #99076)

  • LocalDateLocalDateTime,本地时间当服务器和客户端之间存在时区差异时,通过Connector/J设置的值将被更改。此修复程序通过处理LocalDate本地时间,LocalDateTime没有时区转换,也没有到其他日期-时间类的中间转换。感谢Iwao Abe对修复的贡献。(Bug #29015453, Bug #93444)