版本 8.0.14 是 8.0 系列 MySQL Connector/J 的最新通用版本。它适用于 MySQL 服务器版本 8.0、5.7、5.6 和 5.5。它支持 Java 数据库连接 (JDBC) 4.2 API,并实现了 X DevAPI。
重要更改: 对于 MySQL Server 8.0.14 及更高版本、5.7.25 及更高版本、5.6.43 及更高版本以及 5.5.63 及更高版本,命名管道的最小权限被授予使用它们连接到服务器的客户端。然而,Connector/J 只有在被授予完全访问权时才能使用命名管道。作为解决方法,Connector/J 想要连接的 MySQL 服务器必须使用系统变量启动
named_pipe_full_access_group
;有关详细信息,请参阅系统变量的说明。(漏洞 #28971500)X DevAPI:
getDefaultSchema()
现在null
在没有为Session
.Connector/J 现在有一个用于从源构建的新属性
com.mysql.cj.build.verbose
,它控制构建过程输出的冗长程度。它的默认值为 false,这使得输出与早期版本的 Connector/J 相比要短得多。(缺陷号 28970166)该方法
ResultSet.getBoolean()
现在FALSE
在指定列的数据类型为CHAR
orVARCHAR
且包含“ N ”或“ n ”时返回。这使得 Connector/J 8.0 在将字符串转换为布尔值时表现得像 Connector/J 5.1。(漏洞 #28706219,漏洞 #92574)Connector/J 现在能够读取并在需要时忽略 X 插件在建立 X 协议连接之前发送的任何初始通知数据包。
-
X DevAPI:
NullPointerException
当应用程序尝试使用不支持的 Windows 命名管道建立 XProtocol 连接时, Connector/J 返回 a通过此修复,将XProtoclException
返回 an。此修复程序还确保
NullPointerException
当应用程序尝试与命名管道建立经典 MySQL 协议连接,但命名管道未在连接时指定或无法在指定路径上找到时,将抛出适当的异常,而不是抛出异常。(缺陷号 28606708) X DevAPI: 添加一个空文档并
executeAsync()
导致ERROR 5013
(Missing row data for Insert
)。通过此修复,案例中不会返回任何错误或警告。(漏洞 #23045642)Collection.count()
当集合不存在时返回错误的错误消息。(缺陷号 28924137)Connector/J 的源代码包含非 ASCII 字符,如果系统未使用 UTF-8 语言环境,则可能会在编译期间导致编码问题。通过此修复,无论系统区域设置如何,构建脚本现在都能很好地处理非 ASCII 字符。(漏洞#28894344)
如果通过引导程序类路径而不是主应用程序类路径加载 Connector/J,则会发生内存泄漏。那是因为
AbandonedConnectionCleanupThread
在那种情况下没有初始化它的内部线程,所以关闭连接的引用没有被清理,而且它们的数量一直在增长。此修复程序修复了关闭连接的清理过程,并使进程线程安全。(缺陷 #28747636,缺陷 #92508)clearInputStream()
当它尝试检索的 、 或 对象为空时返回NullPointerException
a 。 通过此修复,在这种情况下会抛出 an。感谢 Henning Schmiedehausen 为修复做出的贡献。(缺陷 #28731795,缺陷 #92625)mysqlSocket
mysqlInput
mysqlOutput
IOExcpetion
使用SELECT ... FOR UPDATE 更新 服务器端准备好的语句返回的结果集导致
SQLException
. (缺陷 #28692243,缺陷 #92536)当连接属性
zeroDateTimeBehavior
设置为 时CONVERT_TO_NULL
,Connector/J 将 TIME类型值 转换00:00:00
为null
。通过此修复,它会java.sql.Time
按预期返回零小时、分钟和秒的实例。(缺陷 #28101003,缺陷 #91065)使用服务器端准备好的语句并使用具有多列主键的表时,
updateRow()
调用失败并显示 aNullPointerException
或SQLException
。(缺陷号 25650514)使用服务器端准备好的语句时, 调用失败
refreshRow()
后的updateRow()
调用带有SQLException
. (缺陷号 25650482)changeUser()
当满足以下所有条件时,未能更改或重新验证用户:(a) 通过 SSL 连接到服务器;(b)caching_sha2
或sha256_password
身份验证插件用于用户;(c) 用户密码包含 Unicode 字符。(漏洞#25642226)