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

MySQL 5.6.27 的变化(2015-09-30,全面上市)

安全说明

  • yaSSL 已升级到版本 2.3.8。

    从旧版本升级修复了与线程池插件一起使用时的连接失败问题。(错误#20774956,错误#21888925)

添加或更改的功能

  • InnoDB:innodb_numa_interleave 的只读配置选项允许您启用 NUMA 交错内存策略以分配 InnoDB缓冲池。启用时 innodb_numa_interleave,NUMA 内存策略设置为 MPOL_INTERLEAVE用于 mysqld进程。InnoDB分配缓冲池 后 NUMA内存策略设置回 MPOL_DEFAULT。此选项仅在支持 NUMA 的 Linux 系统上可用。

    感谢 Stewart Smith 提供的补丁。(错误#18871046,错误#72811)

  • RPM.spec文件已更新,因此从源 RPM 包构建的 MySQL 服务器将包含适当的文件以利用操作系统 NUMA 功能。这引入了对 libnuma.so.1. RPM 和yum 检测到这一点,如果没有安装该库,则拒绝安装。(漏洞 #21775221)

修正错误

  • 创新数据库;Microsoft Windows:lower_case_table_names=0在不区分大小写的文件系统上进行 设置 使用错误的字母大小写运行操作。当尝试在 不区分大小写的文件系统上启动服务器时,现在会打印一条错误消息并退出服务器。(缺陷 #20198490,缺陷 #75185)INSERT INTO ... SELECT ... FROM tbl_nametbl_name--lower_case_table_names=0

  • InnoDB: 重新加载空表时被逐出的表会导致 AUTO_INCREMENT值被重置。(缺陷 #21454472,缺陷 #77743)

  • InnoDB: 内存分配完整性检查已添加到 memcached代码中。(缺陷号 21288106)

  • InnoDB: memcached命令 flush_all 引发断言。从断言代码中调用了启动事务的函数。(错误#21239299,错误#75199)

  • InnoDB: ARM64 上发生数据损坏。设置或取消设置锁定字时,GCC 内置程序未发出正确的围栏。(缺陷 #21102971,缺陷 #76135)

  • InnoDB: 服务器关闭延迟等待清除线程退出。为避免此问题,减少了调用 trx_purge()次数,并将 trx_purge()批处理大小减少到 20。(缺陷 #21040050)

  • InnoDB:READ COMMITTED模式下, REPLACE对唯一二级索引的操作导致约束冲突。感谢 Alexey Kopytov 提供的补丁。(缺陷 #21025880,缺陷 #76927)

  • InnoDB:IBUF_BITMAP_FREE位表示叶页中的可用空间多于实际可用空间。(缺陷号 20796566)

  • InnoDB: 服务器无法以 innodb_force_recovery大于 3 的设置InnoDB。在应用重做日志之前设置为只读模式。

    DROP TABLE现在支持innodb_force_recovery 大于 3 的设置。(缺陷 #19779113)

  • InnoDB:trx_sys_read_pertable_file_format_id() 函数报告了错误的文件格式。(漏洞 #19206671)

  • 打包; OS X:在 OS X 上安装期间 使用user=mysql不允许mysql 安装数据库。为解决此问题,OS X 软件包现在--no-defaults 在创建此数据库时使用该选项。这也意味着my.cnf系统上有文件不再影响安装。(缺陷号 21364902)

  • 分区: CREATE TABLE在子分区表达式中使用无效函数的语句并不总是像预期的那样优雅地失败。(缺陷号 20310212)

  • 分区:ALTER TABLE未正确执行针对未分区表 的失败分区相关操作的错误处理

  • 分区: ALTER TABLE从存储过程执行时,并不总是能正确处理由RANGE. (错误#77333、错误#16613004、错误#21246891)

  • 复制:在表上的长时间写锁定期间 重复检查 ERR_LOCK_WAIT_TIMEOUT(如所做,例如通过重复执行SHOW SLAVE STATUS)导致断言。(缺陷号 21095969)

  • 复制: 如果使用基于语句的日志记录,当在单个语句中更新多个表时,单个事务可能被记录为两个不同的事务。这是由于二进制日志记录过程没有正确识别在事务表上运行的语句。该修复可确保正确识别它们,即使此类语句不会更改表的内容。(错误#16621582,错误#21349028)

  • 复制: 当转储线程在转储不活动的二进制日志时被杀死时,此日志中的某些事件可能会被跳过,因此不会被复制。(错误#78337,错误#21816399)

    参考资料:另请参阅:Bug #74607、Bug #19975697。

  • 复制: 在某些情况下, Retrieved_Gtid_Set从站上可能包含间隙,而 Executed_Gtid_Set从站的二进制日志中没有出现间隙。这可能发生在 slave 旋转中继日志时,该日志的最后一个事件包含设置的记录, gtid_next然后在从以下日志中读取 GTID 后重新启动。重启后,Retrieved_Gtid_Set包含错误执行的 GTID 以及虚假或“幻影”间隙。

    TYhe 修复了这个问题, Retrieved_Gtid_Set在将事件写入中继日志之前添加了一个 GTID,而不是之后。如果由于某种原因写入中继日志失败,GTID 将从 Retrieved_Gtid_Set. (错误#76959,错误#21046372)

    参考资料:另请参阅:错误 #17943188。

  • 复制: SAVEPOINTROLLBACK TO SAVEPOINT在触发器内导致断言。(错误#76727,错误#20901025)

  • 复制:SHOW BINLOG EVENTS 执行语句时,任何并行事务都被阻止。此修复可确保SHOW BINLOG EVENTS进程现在仅在计算文件结束位置期间获取锁,因此并行事务不会长时间阻塞。(错误#76618,错误#20928790)

  • 复制: 如果一个CREATE VIEW语句失败,它被错误地写入二进制日志,即使它没有导致创建部分视图。此修复可确保此类语句不会记录在二进制日志中。此外还发现,当一个在主服务器上失败的语句被一个带有预期错误的从服务器接收到时,如果该语句在从服务器上被跳过,例如由于复制过滤器,预期错误将与实际错误进行比较从机上发生的错误。该修复确保如果从站接收到具有预期错误的语句,如果该语句未被过滤,则仅将其与从站上发生的实际错误进行比较。(错误#76493,错误#20797764)

  • 复制:在日志轮换期间发生硬件故障后 ,指定的操作 binlog_error_action并不总是正确执行。(错误#76379,错误#20805298)

  • 复制: 修改事务的 master_info_repositoryrelay_log_info_repository 内部,然后回滚该事务,使存储库处于不可用状态。我们通过防止在事务中对这些存储库进行任何修改来解决此问题。(缺陷 #74950,缺陷 #20074353)

  • 复制:设置 时relay_log_recovery,报告新恢复位置的错误日志条目已扩展为还报告旧中继日志位置。(错误#74089,错误#21305976)

  • 复制: 当主服务器 正在复制到从服务器时 --binlog_checksum=none, 重新启动从服务器的 SQL 线程会导致事件 crc 检查错误。这是因为 在重新启动从属服务器的 SQL 线程后,无法在现有的中继日志中正确找到来自主服务器的请求。该修复确保 正确跳过,并 在重新启动从属 SQL 线程后在现有中继日志中找到正确的。(错误#73806、错误#20644100、错误#76746、错误#20909880)--gtid-mode=ON--binlog_checksum=crc32Format_description_log_eventPrevious_gtids_log_eventFormat_description_log_event

  • 复制: 使用 relay_log_info_repository=TABLE,在mysql.slave_relay_log_info提交事务或显式执行刷新时更新表,例如在中继日志轮换期间。如果使用任何非事务性表(例如 MyISAM表)的事务跨多个中继日志拆分,则它会在中继日志刷新时部分提交。当 时gtid_mode=ON,这导致相同的 GTID 用于事务的剩余部分,从而引发 ER_GTID_NEXT_TYPE_UNDEFINED_GROUP 错误。

    在这种情况下,我们通过推迟通常在中继日志轮换时发生的中继日志信息存储库的更新来解决此问题,直到已执行相关事务的提交。

    此问题不会影响使用事务存储引擎(例如InnoDB. (缺陷 #68525,缺陷 #16418100)

    参考资料:另请参阅:Bug #21630907、Bug #76974。

  • CMake检查 NUMA 可用性可能会导致在不支持 NUMA 的平台上出现编译问题 。(缺陷号 21774859)

  • 某些子查询作为参数PROCEDURE ANALYSE()可能会导致服务器退出。(漏洞 #21350175)

  • 如果SELECT ... FOR UPDATE子查询导致死锁并导致回滚,则可能会由于不正确的错误处理而引发断言。(缺陷号 21096444)

  • 选择INSERT()以十六进制字符串形式传递输入的函数调用的结果可能会公开比传递给函数更多的信息。(缺陷号 21056907)

  • 视图的可更新属性是在视图创建期间设置的。如果基础表被删除并重新创建为不可更新的表,则原始视图的可更新属性不会相应修改。这可能会导致服务器退出以尝试插入或替换到视图中。(此问题特定于具有多个表/视图的视图,并且不会发生在更新语句中。)(缺陷 #21039264)

  • 链接到 yaSSL 并使用 GCC 4.8.2 编译的服务器可能无法正确响应连接尝试,直到启动后几秒钟。(缺陷号 21025377)

  • 对于具有子分区的表,如果可以识别分区但不能识别子分区,则服务器可能会由于分区修剪期间不正确的错误处理而退出。(缺陷号 20909518)

  • DELETE当使用表别名时,可以检查错误数据库的权限。(缺陷号 20777016)

  • 在触发器中,使用访问行中的游标 OLDNEW值可能会导致服务器退出。(缺陷号 20760261)

  • 某些选项的长路径名值可能导致堆栈溢出。(缺陷号 20376760)

  • 当 MySQL 无法解释给定字符集中的字符时,有时不会产生警告。(缺陷号 20238729)

  • 在 Windows 上,该validate_password插件可能会导致服务器在字典检查期间退出。(漏洞#18636874)

  • 在 Windows 上,设置 query_cache_min_res_unit过大的值可能会导致值为 0 并导致随后的服务器退出。(漏洞#18487951)

  • EXPLAIN包含 GROUP_CONCAT()可能导致服务器退出的语句。(漏洞 #17865675)

  • 在 Windows 上,审计日志插件中的堆损坏导致服务器启动失败。(漏洞 #14700102)

  • datadir如果配置文件包含多行, RPM 安装脚本将失败。现在使用最后 datadir一行。(错误#77878,错误#21527467)

  • 对于等待事件,性能模式 CYCLE默认使用定时器,但如果不可用则无法回退到不同的定时器CYCLE。(错误#77577,错误#21374104)

  • 在同一 语句中 更新VARCHAR和 列可能会产生不正确的结果。当一个 列被分配给一个 列,然后该列被设置为一个不同的值时,该 列的结果包含该列的新值。(错误#77135,错误#21143080)TEXTUPDATEVARCHARTEXTVARCHARTEXTVARCHAR

  • 如果INFORMATION_SCHEMA执行表打开操作的查询遇到损坏的表并试图修复它,则可能会发生死锁,从而导致事务中止而没有报告适当的错误。这样的查询现在不尝试表修复。(错误#76912,错误#21021848)

  • mysqladmin -u root -p可能会因分段错误而退出。(错误#76538,错误#20802751)

  • mysqlimport --use-threads实际上并没有使用多线程。(错误#76480,错误#20772273)

  • 优化器有时会为派生表(子句中的子查询FROM)生成索引。如果在存储程序中执行的语句发生这种情况,则可能会发生内存泄漏。(错误#76349,错误#20728894)

  • 对于 OS X 10.9 软件包, version_compile_os系统变量指示 10.8。(错误#75581,错误#20400501)

  • 优化器在为运算符优化范围扫描时可能会错误地假定内存不足的情况 OR,从而导致高估符合条件的行数。(错误#75248,错误#20229614)

  • char未签名的平台上,服务器无法解析包含非 7 位 ASCII 字符的归类定义。受影响的平台包括 ARM 和 PowerPC。感谢 Alexey Kopytov 提供的补丁。(错误#74891、错误#20928289、错误#21682439)

  • 当其他列指示存在错误时, events_statements_history Performance Schema 表的ERRORS 列值可能为 0。(错误#74614,错误#19929832)

  • 如果另一个语句中的语句 多次使用相同的列名,则 视图创建UNION失败并出现重复列错误 。(错误#74539,错误#19886430)SELECTUNION

  • 语句<element/>未正确处理 具有 表单的空 XML 元素 。LOAD XML(漏洞 #67542,漏洞 #16171518)