Documentation Home
MySQL 连接器/J 8.0 发行说明  /  MySQL Connector/J 8.0.19 的变化(2020-01-13,全面上市)

MySQL Connector/J 8.0.19 的变化(2020-01-13,全面上市)

版本 8.0.19 是 8.0 系列 MySQL Connector/J 的最新通用版本。它适用于 MySQL 服务器版本 8.0、5.7 和 5.6。它支持 Java 数据库连接 (JDBC) 4.2 API,并实现了 X DevAPI。

添加或更改的功能

  • X DevAPI: 使用 X DevAPI 的连接的服务器故障转移支持已通过以下功能得到增强:

    • 如果未priority在连接 URL 中为每个主机设置该属性,则会以随机顺序尝试在主机上建立故障转移连接,直到成功建立连接(Connector/J 曾经按照主机在连接网址)。

    • 一旦尝试了所有主机并且无法建立连接,Connector/J 将抛出 a com.mysql.cj.exceptions.CJCommunicationsException 并返回消息Unable to connect to any of the target hosts

    • 使用连接池时,Connector/J 会跟踪它未能连接到的任何主机,并在失败后的一小段等待时间内避免在创建或检索Session. 但是,如果所有其他主机都已尝试过,则将不等待重试那些被排除的主机。一旦尝试了所有主机并且无法建立连接,Connector/J 将抛出 a com.mysql.cj.exceptions.CJCommunicationsException 并返回消息Unable to connect to any of the target hosts

  • X DevAPI: X DevAPI 连接允许的 TLS 版本和密码套件现在可以通过两个新的连接属性进行限制:

    • xdevapi.tls-versions限制可用于 X DevAPI 连接的 TLS 协议版本。

    • xdevapi.tls-ciphersuites限制可用于 X DevAPI 连接的密码套件。

    有关详细信息,请参阅配置属性使用 SSL 安全连接 中对它们的描述 。

  • 当不使用修饰符时, MySQL Server 8.0.17 弃用了 TINYINT, SMALLINT, MEDIUMINT,INTBIGINT数据类型 的显示宽度,而 MySQL Server 8.0.19 已经从, , 和 查询 ZEROFILL的结果中删除了这些数据类型的显示宽度, ,和 (signed 的显示宽度除外)。这个补丁调整了 Connector/J 以适应 MySQL 服务器的那些最近的变化,因此,,,现在 报告 所有上述整数类型以及和的相同结果SHOW CREATE TABLESHOW CREATE FUNCTIONINFORMATION_SCHEMA.COLUMNSINFORMATION_SCHEMA.ROUTINESINFORMATION_SCHEMA.PARAMETERSTINYINT(1)DatabaseMetaDataParameterMetaDataResultSetMetaDataFLOATDOUBLE数据类型。(缺陷号 30477722)

  • Connector/J 可用的密码套件现在受到一个属性文件的预先限制,该文件可以在 源代码树src/main/resources/com/mysql/cj/TlsSettings.properties 的文件夹内或Connector/Jsrc的独立于平台的分发存档( 格式)中找到。有关详细信息,请参阅 使用 SSL 安全连接.tar.gz.zip

  • Connector/J 现在支持使用 DNS SRV 记录进行连接。以下是 Connector/J 对 DNS SRV 记录的支持的简要总结:

    • 连接 URL 中的这些新模式启用 DNS SRV 支持:

      • jdbc:mysql+srv:对于使用 DNS SRV 记录的普通和基本故障转移 JDBC 连接。

      • jdbc:mysql+srv:loadbalance:用于使用 DNS SRV 记录的负载平衡 JDBC 连接。

      • jdbc:mysql+srv:replication:对于使用 DNS SRV 记录的复制 JDBC 连接。

      • mysqlx+srv:对于使用 DNS SRV 记录的 X DevAPI 连接。

    • 除了在连接 URL 中使用新模式外,还可以使用两个新连接属性启用或禁用 DNS SRV 记录支持dnsSrvxdevapi.dns-srv分别用于 JDBC 和 X DevAPI 连接。

    有关详细信息,请参阅连接器/J 8.0 开发人员指南中的对 DNS SRV 记录的 支持。

  • 当没有使用连接属性设置限制时,用于连接到服务器的 TLS 协议的允许版本enabledTLSProtocols已更改为:

    • TLSv1, TLSv1.1, TLSv1.2, and TLSv1.3适用于 MySQL 社区服务器 8.0、5.7.28 及更高版本、5.6.46 及更高版本,以及所有商业版本的 MySQL 服务器。

    • TLSv1 and TLSv1.1对于所有其他版本的 MySQL 服务器。

修正错误

  • MySQL Yum 存储库提供的 Connection/J 的 RPM 包没有设置 epoch;因此,即使启用了 MySQL Yum 存储库,也无法在 Enterprise Linux 或 Fedora 系统上安装该软件包,因为本机存储库中的 Connector/J 软件包将纪元设置为 1。此修复还设置了纪元to 1为MySQL Yum仓库提供的RPM包,以防止安装出现问题。(缺陷 #30566384,缺陷 #97700)

  • 对于一些准备好的语句, 即使不 涉及任何值,调用getMetaData()它们也会导致 错误。这是由于 MySQL 服务器最近发生了一些变化,此补丁调整了 Connector/J。(漏洞 #30151808,漏洞 #96442)Incorrect DATEDATE

    参考资料:另请参阅:Bug #29025656、Bug #28940878。

  • 使用 检索TIMEResultSet.getTimestamp()时,小数秒会在 时被截断 useCursorFetch=true。此补丁通过TIME修复MysqlBinaryValueDecoder. 它还纠正了在将TIME值作为字符串返回时格式化小数秒的一些不一致。(漏洞 #30119545,漏洞 #96383)

  • 多个结果集的流式传输失败并出现错误。这是由于将流媒体源从一个结果集切换到另一个结果集时出错,此修复程序纠正了该问题。(缺陷 #29999318,缺陷 #96059)