修复自5.1.18版本以来发现的错误。
对于使用不同于默认排序规则的UTF-8表(
utf8_general_ci
的精度ResultSetMetaData
可以不同于创建表
声明。的返回值getMaxBytesPerChar ()
.此修复更改了一些连接字符串参数的行为。
useDynamicCharsetInfo
不再有任何影响。通过设置cacheServerConfiguration = true
的结果,缓存的设置也包括显示字符集
声明。(Bug #13495590, Bug #63456)增加了对可插入身份验证的支持。通过
com.mysql.jdbc.AuthenticationPlugin
接口(扩展了标准”扩展”接口)。例子在com/mysql/jdbc/authentication
而在testsuite.regression.ConnectionRegressionTest。
该特性引入了三个新的连接属性:authenticationPlugins
定义要实现的类的逗号分隔列表com.mysql.jdbc.AuthenticationPlugin
和用于身份验证,除非被禁用disabledAuthenticationPlugins
财产。disabledAuthenticationPlugins
定义以逗号分隔的实现类列表com.mysql.jdbc.AuthenticationPlugin
或机制,即。mysql_native_password
.认证插件或机制不能用于认证。如果需要这些类之一,身份验证将失败。禁用默认的身份验证插件是错误的defaultAuthenticationPlugin
属性或硬编码的defaultAuthenticationPlugin
属性未设置。defaultAuthenticationPlugin
定义类实现的名称com.mysql.jdbc.AuthenticationPlugin
,作为默认的认证插件。中未列出的类是错误的authenticationPlugins
并且不是内置插件之一。列表中禁用的插件设置为默认是错误的disabledAuthenticationPlugins
财产。将此值设置为null或空字符串是错误的;必须为连接指定至少一个有效的默认身份验证插件,满足上面列出的所有约束。
性能:不必要的呼叫
bind ()
在某些平台上,套接字操作可能会限制可伸缩性。(Bug #13875070, Bug #63811)setMaxRows
在为客户端准备语句收集元数据期间未正确处理,导致获取整个结果集,并可能导致内存不足错误。(Bug #13839395, Bug #64621)处理转义序列(在
com.mysql.jdbc.EscapeProcessor # escapeSQL
)可能导致某些语句失败。例如,创建表
带有子句的语句约束“fk_”
没有正确解析。(Bug #13612316, Bug #63526)的
sjis
字符集映射错误MS392
,然后映射到cp932
,导致某些情况下出现乱码。在Connector/J 5.1.19中,对字符集和排序规则的映射进行了重构,以避免这种多步骤映射。(错误# 13589875)修复了存储过程执行权限不足的问题。(Bug #13508993, Bug #61203)
故障转移连接、代理语句或准备语句以及数据库连接池的组合可能由于不正确的实现而导致内存泄漏
equals ()
.(Bug #13441718, Bug #63284)com.mysql.jdbc.ResultSetRow.getTimestampFast ()
未占全部有效时间
长度。(Bug #60582, Bug #16592635)的
Connection.changeUser ()
方法未检查已关闭的连接,导致NullPointerException
在封闭连接上调用此方法时发生错误。减少服务器端准备语句的内存开销。每个预处理语句分配一个4K缓冲区用于转换流。当没有时,这个分配被跳过
设置*流()
方法已经使用。