版本5.1.39是生产5.1分支的维护版本。它适用于MySQL Server 5.5、5.6和5.7版本。它支持Java数据库连接(JDBC) 4.2 API。
连接器/J挂起,返回aNullPointerException,或在使用带有属性的结果集时返回错误异常
TYPE_FORWARD_ONLY
而且CONCUR_UPDATABLE
.这是由于对结果集的游标检查不准确造成的。这个修正确保了Connector/J在执行语句和获取结果时准确地检查游标是否已被请求。(错误# 23201930)使用服务器端准备语句时
profileSQL = true
而且useInformationSchema = true
,一个SQLException异常(”ResultSet来自UPDATE。没有数据”)在客户端试图前进到结果集中的下一行时发生。这是由于对元数据的内部查询失败,现在通过这个修复程序防止了这种情况。(错误# 23188498)LoadBalanceConnectionGroupManager.removeHost ()
没有按预期删除主机。此修复程序试图确保在不同的情况下能够成功删除主机。(错误# 22848249)参考文献:参见Bug #22678872。
连接
useCursorFetch = true
并获取size set withdefaultFetchSize
或setFetchSize
,如果数据来自时间
和一个团
data列一起被选中,返回TIME数据的损坏值。(Bug #22833410, Bug #80522)对于负载平衡连接,使用ArrayIndexOutOfBoundsException是什么时候扔的
ConnectionGroupManager.removeHost ()
被称为。这是由于一个错误LoadBalancedConnectionProxy.removeHost ()
,现在这个问题已经得到了解决。(错误# 22730682)Fabric连接抛出了一个NullPointerException当所有主机已从其主机列表中移除,或者由于复制连接的不一致,内部负载均衡连接变为空时。这个修复增加了Connector/J处理这些情况的能力。还有一个新的连接属性,
loadBalanceHostRemovalGracePeriod
,它设置了等待从负载平衡连接中删除当前活动主机的宽限期。中的新属性的条目连接器/J的配置属性获取详细信息。(错误# 22678872)参考文献:参见:Bug #22848249。
FabricMySQLDataSource.getConnection ()
发生主故障转移时抛出空指针异常。(错误# 22598938)Connector/J JAR文件中的OSGi清单文件没有公开MySQL Fabric包,因此与Fabric相关的类无法解析,即使它们出现在JAR文件中。(错误# 22385172)
对于一些Tomcat web应用程序,当Connector/J连接到服务器时
useLegacyDatetimeCode = false
没有设置serverTimeZone
,返回一个NullPointerException。这是因为Connector/J的时区属性文件是由引导类装入器装入的,引导类装入器不知道属性文件的位置,因此未能装入。这个修复方法使Connector/J对属性文件和Connector/J类使用相同的类装入器,从而避免了这个问题。(Bug #22353759, Bug #79343)当使用JDBC 4.2和connection属性时
cachePrepStmts
设置为”真正的
,”在缓存了准备好的语句之后,重新运行SQL语句会得到一个jdbc 4.2以前的版本PreparedStatement
对象正在实例化。此修复程序通过拥有PreparedStatement
由工厂而不是构造函数方法实例化。(Bug #22352812, Bug #79598)在每个连接中,Connector/J得到
sql_mode
变量,并试图将其解析为一个数字;因为sql_mode不是一个数字(除了非常老的MySQL版本),所以sql_mode不是一个数字NumberFormatException总是被抛出,然后被代码捕获。此修复程序重构了代码,以避免不必要的抛出和捕获错误。(Bug #21181466, Bug #77171)当将多个时间戳值插入与
useLegacyDatetimeCode = false
而且useCursorFetch = true
,在插入空值后,进一步的插入不能改变时间戳的值。此修复确保在进行新插入之前重置值的绑定。(Bug #20685487, Bug #75956)中的异常消息
CallableStatement ()
对于不正确的输出参数注册给出了很少的细节和错误的错误代码。(Bug #18068303, Bug #71131)调用
getTimestamp ()
在时间戳列上导致java.sql.SQLException(”无法转换值…到时间戳”).这是因为ResultSet中的每一行都缺少元数据。此修复确保元数据不再丢失。(Bug #16738378, Bug #56479)在有其他第三方组件访问数据的非常快的服务器上,a
并发修改异常
有时会被扔出去。此修复程序通过添加同步来防止异常ConnectionImpl.closeAllOpenStatements ()
,以及通过重构方法内部的部分代码。(Bug #16736619, Bug #59462)