Documentation Home
MySQL 5.6 发行说明  /  MySQL 5.6.37 的变化(2017-07-17,全面上市)

MySQL 5.6.37 的变化(2017-07-17,全面上市)

包装说明

  • mysqladmin被添加到 Docker/Minimal 包中,因为 InnoDB Cluster 需要它。(缺陷号 25998285)

  • 对于 Windows,MSI 安装程序包现在包括对所需 Visual Studio 可再发行包的检查,并在缺少时生成一条消息,要求用户安装它。(缺陷号 25658832)

安全说明

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

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

添加或更改的功能

  • mysql客户端现在支持 --binary-as-hex使用十六进制表示法 ( ) 显示二进制数据 的选项。感谢 Daniël van Eeden 提供补丁。(漏洞 #25340722,漏洞 #84391)0xvalue

  • mysqlaccess现在只在SYSCONFDIR目录和/etc. (缺陷号 25043674)

修正错误

  • InnoDB: 服务器为重建表的操作分配了不必要的内存。(漏洞 #25573565,漏洞 #85043)

  • InnoDB: 当使用索引合并优化器开关时,SELECT COUNT(*)操作有时会返回 0。分区代码错误地执行了memcpy索引读取的列的复制,而不是列复制,导致复制了错误的记录。(漏洞 #25332330,漏洞 #81031)

  • 复制:USE声明后面的 声明SET GTID_NEXT有时没有效果。(缺陷号 26128931)

  • 复制: 如果主服务器上的二进制日志被轮转,并且存储二进制日志文件的分区出现磁盘已满的情况,则服务器可能会意外停止。当转储线程切换到下一个二进制日志文件时,该修复添加了对二进制日志是否存在的检查。如果二进制日志被禁用,所有二​​进制日志直到当前活动日志被传输到slave,并向接收线程返回一个错误。(缺陷号 25076007)

  • Replication: 如果一个名为 relay log files 的 relay log 索引文件不存在,RESET SLAVE ALL有时无法完全正确清理。(漏洞 #24901077)

  • 复制: mysqlbinlog,如果使用该选项调用,则 --raw在进程终止之前不会刷新输出文件。但是,如果还使用该选项调用,则 --stop-never该过程永远不会终止,因此不会将任何内容写入输出文件。现在输出在每个事件后刷新。(漏洞 #24609402)

  • 复制:修复了mysqlbinlog中 的内存泄漏泄漏发生在处理伪造的轮换事件时,或者使用时 --raw无法创建目标日志文件。泄漏仅在处理来自远程服务器的事件时发生。感谢 Laurynas Biveinis 为修复此错误所做的贡献。(漏洞 #24323288,漏洞 #82283)

  • 复制:slave_pending_jobs_size_max如果多线程从站需要处理大于该大小的事务,则 不能使用较小的队列大小进行配置 任何大于的数据包 slave_pending_jobs_size_max都被拒绝并出现错误 ER_MTS_EVENT_BIGGER_PENDING_JOBS_SIZE_MAX,即使数据包小于 设置的限制 slave_max_allowed_packet

    通过此修复, slave_pending_jobs_size_max 成为软限制而不是硬限制。如果一个数据包的大小超过 slave_pending_jobs_size_max但小于 slave_max_allowed_packet,则事务会被暂停,直到所有slave worker的队列都为空,然后再处理。所有后续交易都将暂停,直到大笔交易完成。因此,可以限制从属工作者的队列大小,同时仍然允许偶尔进行较大的事务。(缺陷 #21280753,缺陷 #77406)

  • Linux: MySQL 8.0 的通用 Linux 构建现在使用 glibc2.12 在 Oracle Linux 6 上构建。使用构建的系统需要glibc安装 2.12 或更高版本。(漏洞 #26005558)

  • mysqldumpUSE可能会在语句中错误地写入数据库名称 (缺陷号 25998635)

  • 如果mysql_stmt_close()调用 C API 函数,它会释放内存,以后可以在调用mysql_stmt_error()mysql_stmt_errno()mysql_stmt_sqlstate()时访问这些内存。要在调用 之后获取错误信息 mysql_stmt_close(),请调用 mysql_error()mysql_errno()mysql_sqlstate()。(缺陷号 25988681)

  • InnoDB 在这些情况 下,查询可能会被错误地缓存,从而导致不正确的查询结果:正在插入但尚未提交的行;查询使用该表作为派生表中的基表;优化器选择具体化派生表。(漏洞 #25943038,漏洞 #86047)

  • Debian/Ubuntu 软件包中缺少一些实用程序的手册页。(漏洞#25811814)

  • field-t单元测试无法在启用 AddressSanitizer 的情况下运行 。感谢 Laurynas Biveinis 提供补丁。(漏洞 #25803823,漏洞 #85678)

  • Debian 客户端包缺少有关与本机包冲突的信息。(漏洞#25799475)

  • #!Perl 脚本开头行中 的 Perl 路径已/usr/local/bin/perl针对 FreeBSD 11 进行了调整。(缺陷 #25719975)

  • 服务器异常退出试图访问无效的内存。(漏洞 #25501659)

  • CREATE TABLE带有DATA DIRECTORYorINDEX DIRECTORY 子句 的语句可能会出现竞争条件。(漏洞 #25451091)

  • 不同目录中的 MySQL 编译产生不同的构建,以将绝对路径泄漏到调试信息和 __FILE__. (错误#25436469、错误#84608、错误#25859274、错误#85855)

  • --datadir如果用相对路径名指定该选项,则mysqld_failed无法启动服务器 (缺陷号 25364806)

  • read_only启用后,在特定条件下允许非用户创建 非表TEMPORARYSUPER(缺陷号 25250768)

  • 某些存储函数,如果在查询 WHERE子句中使用,可以使用索引条件下推(这不应该发生)来处理,从而导致服务器退出。(错误#25196653,错误#25174454)

  • 在 x86 机器上,uint3korr()宏读取 4 个字节的数据而不是预期的 3 个字节。(漏洞 #24807826,漏洞 #83264)

  • 在 memcached 插件的提取操作期间引发了断言。(漏洞 #24605783)

  • 包含UNION在子查询中并GROUP BY可能返回不正确结果的查询。(漏洞 #24595639)

  • LOAD XML当读取的 XML 文件包含大量空格时,性能会明显变慢,例如通过缩进或漂亮打印引入的空格。现在,在将每个这样的值读入内存之前,所有前导空格都会被删除。(漏洞 #16212207)