版本 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 将抛出 acom.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
,INT
和BIGINT
数据类型 的显示宽度,而 MySQL Server 8.0.19 已经从, , 和 查询ZEROFILL
的结果中删除了这些数据类型的显示宽度, ,和 (signed 的显示宽度除外)。这个补丁调整了 Connector/J 以适应 MySQL 服务器的那些最近的变化,因此,,,现在 报告 所有上述整数类型以及和的相同结果SHOW CREATE TABLE
SHOW CREATE FUNCTION
INFORMATION_SCHEMA.COLUMNS
INFORMATION_SCHEMA.ROUTINES
INFORMATION_SCHEMA.PARAMETERS
TINYINT(1)
DatabaseMetaData
ParameterMetaData
ResultSetMetaData
FLOAT
DOUBLE
数据类型。(缺陷号 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 记录支持
dnsSrv
,xdevapi.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 DATE
DATE
参考资料:另请参阅:Bug #29025656、Bug #28940878。
使用 检索
TIME
值ResultSet.getTimestamp()
时,小数秒会在 时被截断useCursorFetch=true
。此补丁通过TIME
修复MysqlBinaryValueDecoder
. 它还纠正了在将TIME
值作为字符串返回时格式化小数秒的一些不一致。(漏洞 #30119545,漏洞 #96383)多个结果集的流式传输失败并出现错误。这是由于将流媒体源从一个结果集切换到另一个结果集时出错,此修复程序纠正了该问题。(缺陷 #29999318,缺陷 #96059)