Documentation Home
MySQL 5.6 发行说明  /  MySQL 5.6.23 的变化(2015-02-02,全面上市)

MySQL 5.6.23 的变化(2015-02-02,全面上市)

安全说明

  • MySQL Commercial Server 的链接 OpenSSL 库已从版本 1.0.1j 更新到版本 1.0.1k。http://www.openssl.org/news/vulnerabilities.html中描述了新版本中修复的问题 。

    此更改不影响 Oracle 生成的 MySQL Community 构建的 MySQL Server,它使用 yaSSL 库。(缺陷号 20375530)

  • yaSSL 已升级到版本 2.3.7。(错误#19695101,错误#20201864)

添加或更改的功能

  • SSL 2.0 和 SSL 3.0 协议现在被明确禁用,因为它们提供弱加密。(漏洞 #19820550)

    参考资料:另请参阅:Bug #19921150。

  • 中 SSL 证书的有效日期范围 mysql-test/std_data已扩展到 2029 年。(漏洞 #18366947)

修正错误

  • InnoDB: 表空间导出操作将清除状态设置为 PURGE_STATE_STOP,但清除线程直到当前清除操作完成后才检查清除状态。在历史列表很大的情况下,表空间导出操作被延迟,等待当前清除操作完成。现在检查每个清除批次的清除状态。(错误#20266847,错误#75298)

  • InnoDB:ALTER TABLE ... ADD INDEX由于断言代码不允许在线索引状态,操作引发了 断言ONLINE_INDEX_ABORTED_DROPPED。断言代码放宽了。(缺陷号 20198726)

  • InnoDB:push_warning_printf在服务器恢复期间调用函数 时发生错误 此函数以前用于向客户端打印警告消息。此外, current_thd在服务器重新启动时为 NULL。(缺陷号 20144839)

  • InnoDB: 计数器未能报告计数器数据。(缺陷 #20080942,缺陷 #74511)INNODB_METRICS adaptive_hash_searches_btree

  • InnoDB:更改外键列名称 的ALTER TABLE操作导致重新加载外键约束时失败。之前的列名保留在数据字典缓存中,而不是被逐出。(缺陷号 20031243)

  • InnoDB:禁用时, 在foreign_key_checks 作为先前外键约束的一部分的重命名列上添加外键约束时会引发断言。(缺陷号 20029625)

  • InnoDB:修改了有关单个事务中 的大小限制 BLOBTEXT(漏洞#19975322)

  • InnoDB: 对具有全文搜索索引的表的 DML 操作引发了无效断言。(漏洞 #19905246)

    参考资料:此问题是 Bug #19314480 的回归。

  • InnoDB: 多表删除操作导致服务器停止。(漏洞 #19815702)

  • InnoDB: 一个FLUSH TABLES操作提出了一个断言。(漏洞#19803418)

  • InnoDB: 启用更改缓冲后,不应缓冲的缓冲操作序列导致 无法清除记录错误。(缺陷 #19528825,缺陷 #73767)

  • InnoDB: 在非 Windows 平台上,os-file_pread函数 os_file_pwrite在发生错误时返回 -1。该值作为读取或写入的字节数打印在错误消息中。现在不再打印错误消息中的 -1 值,而是打印一条单独的错误消息,指示系统调用失败。感谢 David Bennett 提供的补丁。(缺陷 #19315210,缺陷 #73365)

  • InnoDB:innodb_fast_shutdown=0崩溃恢复引发断言后 缓慢关闭(缓慢关闭没有等待后台回滚操作完成才继续。(漏洞 #16862810)

  • InnoDB: 对于 memcached incrdecr命令,整数列值处理不正确。(错误#69415、错误#20083106、错误#74874、错误#20044123)

  • 分区:针对分区表 的失败 ALTER TABLE ... TRUNCATE PARTITION语句或失败 TRUNCATE TABLE后续重用此元数据的 SQL 语句失败,并且在某些情况下还可能导致服务器出现故障。(错误#74292,错误#19786861)

  • 复制: 如果从服务器上的客户端线程在FLUSH TABLES WITH READ LOCK主服务器执行 DML 时执行SHOW SLAVE STATUS,则在同一个客户端中执行会被阻塞,从而导致死锁。该修复确保读取锁定仅在更新中继日志期间保持,避免了死锁。(漏洞 #19843808)

  • 复制: 可忽略的日志事件在 MySQL 5.6 中引入,但被发现无法正常运行。现在已经修复了。(错误#74683,错误#19949915)

  • 复制: 当 XA 事务处于活动状态时,执行内部回滚(例如使用 BINLOG语句)会导致断言。该修复程序确保当事务跨越多个二进制日志文件时,仅对从服务器发生回滚。BINLOG如果 Format_description 来自MySQL 客户端中正在执行的语句,现在不会发生回滚(错误#74597,错误#19928622)

  • 复制: 在正常使用中,slave 不可能比 master 拥有更多的 GTID。但在某些情况下,例如硬件故障或错误清除后 gtid_purged,master 的二进制日志可能会被截断。此修复可确保在这种情况下,主服务器现在检测到从服务器具有不在主服务器上的 GTID 事务。现在在从站上生成一个错误,并且 I/O 线程因错误而停止。master 的转储线程也停止了。这可以防止复制期间的数据不一致。(错误#72635,错误#18789758)

  • Replication:SHOW SLAVE STATUS用于监控复制性能时, Seconds_Behind_Master有时会出现意外滞后于 master。这是由于 Previous_gtids日志事件被写入从服务器的中继日志,时间戳落后于主服务器,然后用于计算 Seconds_Behind_Master. 此修复可确保在从站上生成的事件被添加到中继日志并且在计算时不被使用 Seconds_Behind_Master。(错误#72376,错误#18622657)

  • 在 Ubuntu 14.10 上,MySQL 安装操作可能无法重新加载 AppArmor。(缺陷号 20092641)

  • EXPLAIN在 XA 事务中可以提出断言。(漏洞#19941492)

  • 在锁定和截断临时表后解锁临时表可能会导致服务器退出。(漏洞 #19786309)

  • Enterprise Encryption 插件可能会错误处理字符串参数。(错误#19688008,错误#20730103)

  • 通过使用mysqlbinlog 从远程服务器流式传输二进制日志创建的二进制日志文件被赋予比原始文件更宽松的访问模式。(漏洞#19649868)

  • 如果audit_log插件遇到磁盘已满错误,服务器将退出。

    现在,如果正在写入审计日志的文件系统已满,则会将磁盘已满错误写入错误日志。审计日志记录会一直持续到审计日志缓冲区已满为止。如果在缓冲区填满时可用磁盘空间尚未可用,客户端会话将挂起,并且在客户端会话挂起时停止服务器将导致审计日志损坏。要在客户端会话挂起时避免这种情况,请确保在停止服务器之前审计日志文件系统上有可用空间。(漏洞#19411485)

  • 对于由于文件描述符不足而无法创建临时表,服务器退出而不是返回错误。(漏洞#18948649)

  • 对于某些包含派生表(子句中的子查询 FROM)的查询,由于行计数估计不太准确,具体化延迟导致执行计划不理想。(漏洞#18607971)

  • 对于UPDATEand DELETE语句,服务器可能会在尝试访问未初始化的数据结构后退出。(漏洞 #18036143)

  • 使用start servicemysqld_safe 启动服务器可能会导致无法使用正确的插件目录。(漏洞 #17619241)

  • FLUSH TABLESFEDERATED如果表空闲时间超过 wait_timeout时间加上 TCP keepalive 时间,则在 表上失败。(漏洞#17599258)

  • 如果它们在表缓存中,则从中选择所有列 INFORMATION_SCHEMA.TABLES不会重新打开表,但在相同条件下选择这些列的子集会重新打开表。(漏洞 #16869534)

  • 如果my_write()遇到磁盘已满的情况,它可能会返回不正确的错误值。(错误#16078792,错误#19984788)

  • 格式错误的数据包可能导致服务器退出。(漏洞 #10063897)

  • InnoDB布尔全文搜索+与括号结合使用时处理不当;例如,+word1 +(>word2 <word3)。(错误#74845,错误#20028323)

  • MySQL 无法在调试模式下使用 GCC 4.9.1 进行编译。(错误#74710,错误#19974500)

  • 对于调试版本,服务器可能会由于优化器未能为组引用分配足够的内存而退出。(错误#74447,错误#19855522)

  • 服务器不再记录以下警告,因为它们不提供信息:客户端未能提供其字符集。' charset' 将用作客户端字符集。(错误#72543,错误#18708334)

  • 如果为内部临时表创建的文件由于某种原因被孤立并且文件名被重新用于以后的查询,则可能会导致问题。(错误#32917,错误#11747548)