10bet网址
MySQL Connector/ j5.1发布说明
相关的文档10bet官方网站 下载发行说明

MySQL Connector/ j5.1发布说明/MySQL Connector/ j5.1的变化/ MySQL Connector的变化/J 5.1.23 (2013-02-05)

MySQL Connector/J 5.1.23 (2013-02-05)

修复自5.1.22版本以来发现的错误。还为MySQL Server 5.6的几个新特性添加了支持和测试用例。

添加或更改的功能

  • 新的测试用例涵盖了MySQL Server 5.6的新特性:

    • 显式分区选择语法。

    • 交换分区语法。

    • 可移植表空间语法:锁定表…用于出口

    • 创建表…DATA DIRECTORY = '/absolute/path/to/ DIRECTORY /'InnoDB表的语法。

    • ALTER TABLE语法:算法而且关键词。

  • 增加了密码过期协议的支持。这引入了一个新的布尔连接属性disconnectOnExpiredPasswords

    • 如果disconnectOnExpiredPasswords = true并且密码已过期,连接将被服务器拒绝ErrorCode == 1820ER_MUST_CHANGE_PASSWORD).

    • 如果disconnectOnExpiredPasswords = false,连接进入沙盒模式,其中除设置密码=…而且为current_user()设置密码=…导致抛出错误。设置密码后,用户需要重新连接,因为Connector/J需要来自服务器的其他信息,而这些信息在沙盒模式。

  • 更新了静态字符集/排序图,特别是ucs2_unicode_ci而且utf8_unicode_ci排序。

  • Connection.setReadOnly ()将利用MySQL 5.6及更新版本中对只读事务的服务器端支持。调用.isReadOnly ()会招致往返如果useLocalSessionState未启用。

  • 驱动程序现在允许缓存MySQL服务器配置值的机制在运行时可替换,通过serverConfigCacheFactory财产。默认是一个实现,它是一个每个虚拟机并发映射,以URL为键值。驱动程序将使缓存项无效SQLException异常抛出指示通信错误的异常(假设服务器已经或正在重新启动)。如果所连接的服务器版本与填充缓存值时的服务器版本不同,则驱动程序还会使缓存项失效。

    要替换默认实现,请执行CacheAdapterFactory>类的此实现的完全限定类名serverConfigCacheFactory连接选项。

错误修复

  • 在重新部署应用程序时,用于日志和异常消息中的起源点的堆栈跟踪会导致Permgen泄漏,因为WebappClassloader无法进行垃圾收集。我们不再存储整个堆栈跟踪,只存储调用类和方法,并且只在使用使用建议器或分析时存储。(Bug #16097851, Bug #67954)

  • 连接设置useCompression = true, SQL语句本地加载数据可能会导致java.net.SocketException由于管道破裂导致错误。(Bug #15895369, Bug #11237)

  • nativeSQL ()方法将始终截断小数秒,而不是保留输出字符串中的小数部分。现在Connector/J检查服务器版本:它保留MySQL 5.6.4及以上版本的小数部分,并截断旧版本的小数部分。(Bug #14748459, Bug #60598)

  • 启用了新的MySQL服务器密码哈希特性后,可以从结果集而且CachedRowSet.测试套件被修改为不执行比较密码()设置时的结果old_passwords = 2,因为启用了SHA-256密码哈希,函数返回的结果是不确定的。(错误# 14665141)

  • 中的废弃连接的清理线程NonRegisteringDriver类被重构为具有静态关机方法。内存被分配但从未释放。类在应用程序中实现上下文侦听器AbandonedConnectionCleanupThread.shutdown ()打电话给contextDestroyed方法。在Tomcat应用程序服务器下运行的应用程序中发现了此问题,但它可能也适用于其他应用程序服务器。

    例如:

    @WebListener公共类YourThreadsListener实现ServletContextListener {public void contextDestroyed(ServletContextEvent arg0) {try {AbandonedConnectionCleanupThread.shutdown();} catch (InterruptedException e){}}…}

    注意,如果容器不支持注释,则将描述添加到web . xml

    <侦听器> <侦听器类> user.package。YourThreadsListener < /侦听器类> < /侦听器>

    (Bug #14570236, Bug #65909)

  • 使用连接参数rewriteBatchedStatements = trueResultSetRow.getTimeFast可以给出不正确的值时间包含小数部分的列。(错误# 14260352)

  • 如果一个时间戳值通过预处理语句参数传递时,会剥离几分之一秒的精度,即使底层字段(如VARCHAR (255))可以储存全部价值。例如,在指定预处理语句参数时,可以将时间戳值转换为字符串prepped_stmt.setString (time_stamp.toString ().这在5.1.19中得到了部分修复,但该修复没有覆盖设置的情况useLegacyDatetimeCode = true.(Bug #11750017, Bug #40279, Bug #60584)

  • executeQuery ()Statement.java截断表执行查询,尽管该方法应该阻止修改数据库的任何请求。截断表而且重命名表现在过滤了executeQuery ().(Bug #11748257, Bug #35653)

  • 使用非sun /Oracle JDK时,从源代码编译Connector/J失败,因为Ant目标compile-testsuite包含一个AppletRegressionTest使用特定于sun的类(sun.applet.AppletSecurity).此修复将删除AppletRegressionTest因此,构建过程中对Sun类的依赖。(Bug #11745319, Bug #13509)