Documentation Home
MySQL 5.6 发行说明  /  MySQL 5.6.40 的变化(2018-04-19,全面上市)

MySQL 5.6.40 的变化(2018-04-19,全面上市)

添加或更改的功能

  • 如果服务器 PID 文件配置为在全球可写位置创建,服务器现在会发出警告,建议使用更安全的位置。(漏洞 #26585560)

修正错误

  • NDB Cluster: MySQL NDB Cluster 在编译时遇到竞争条件 lex_hash.h。(错误#24931655、错误#83477、错误#27470071、错误#89482)

  • InnoDB:对临时表 的REPLACE操作引发了断言。(错误#27225649,错误#27229072)

  • InnoDB: 服务器上的表空间导入操作,默认行格式REDUNDANT引发断言失败。(缺陷号 26960215)

  • InnoDB: 解析函数中子查询的评估引发了断言。(漏洞#26909960)

  • InnoDB: 当要应用的最后一条插入日志记录被拆分成两页时,重建表的在线 DDL 操作引发断言。(错误#26696448,错误#87532)

  • InnoDB:重命名模式 的RENAME TABLE操作未能重命名先前删除全文搜索索引时留下的全文搜索公共辅助表,导致在尝试删除旧模式时断言失败。(漏洞#26334149)

  • 复制: 对二进制日志解码过程进行了许多更改,以改进对无效或损坏的二进制日志条目的处理。(漏洞 #24365972)

  • 空间函数的无效输入多边形可能会导致未定义的服务器行为。现在服务器返回 NULL。(漏洞 #27230859,漏洞 #88801)

  • 向持有多个锁的表添加唯一索引InnoDB可能会引发断言。(漏洞#27216817)

  • 对于某些语句,FILE 未正确检查权限。(缺陷号 27160888)

  • ST_Touches()可能由于缺少空指针检查而失败。(漏洞#27081349)

  • 对包含 FULLTEXT键和 FTS_DOC_ID列的表执行多次插入语句导致服务器错误。(漏洞 #27041445,漏洞 #88267)

    参考:这个问题是 Bug #22679185 的回归。

  • ALTER TABLE操作试图在废弃的表空间中设置表的 值AUTO_INCREMENT。(漏洞 #26935001)

  • 从系统表中删除索引可能会导致服务器退出。(漏洞#26881798)

  • 服务器退出可能是由多个线程同时尝试注册和注销元数据性能模式对象引起的。(漏洞 #26502135)

  • 线程池插件为失败的连接记录了太多信息。(错误#26368725,错误#86863)

  • 对于调试版本,使用KILL终止存储的例程可能会引发断言。感谢 Laurynas Biveinis 提供补丁。(漏洞 #26040870,漏洞 #86260)

  • 如果收到格式错误的客户端/服务器协议数据包,MySQL 客户端程序可能会意外退出。(漏洞 #25471090)

  • 插件对内部哈希的不正确处理CONNECTION_CONTROL 导致错误日志中出现虚假消息并最终导致服务器退出。(漏洞 #25052009)

  • 使用并行编译构建 MySQL 有时会失败,因为在创建sql_yacc.yy之前 尝试编译。lex_token.h(错误#21680733、错误#27470071、错误#89482)

  • 在 Windows 上,sql_yacc.ccsql_yacc.h构建过程中生成两次。如果允许并行进程,这可能会导致编译失败。(错误#19060850、错误#27470071、错误#89482)

  • audit_log插件没有记录准备好的语句的占位符值。(漏洞 #16617026)

  • NULLIF()带有 TIMESTAMP参数可能会产生截断的输出。(缺陷 #12616286,缺陷 #61378)

  • MAX()对于 DATE小于 100 年的值,会产生不正确的结果。(缺陷 #12546797,缺陷 #61100)

  • 由于缺少对 lex_token.hfor 的依赖,编译可能会失败sql_yacc.cc.o。(错误#76235、错误#20678411、错误#27470071、错误#89482)

  • 当 没有返回任何行时WHERE,表单 的条件并不总是评估。(缺陷 #61799,缺陷 #12762381)column_value < ALL (select_expression)TRUEselect_expression

  • 优化器错误地优化掉了选择 MIN()or MAX()表达式的子查询,即使子查询与外部引用相关或依赖于外部引用也是如此。此处显示了此类查询的示例:

    SELECT (
      SELECT MIN(42) FROM t2 WHERE t2.pk = t1.pk
      ) AS scalar_subqry
      FROM t1;

    在这种情况下,优化器减少 SELECT MIN(42) FROM T2到一个常量值 (42),并且WHERE T2.pk = T1.pk在查询执行期间从未检查相关谓词。(如果执行谓词,它不会限定子查询中的任何行,并且会被评估为NULL。)(错误#53485,错误#11761032)