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

MySQL 5.6.10 的变化(2013-02-05,全面上市)

从 MySQL 5.6.10 开始,MySQL Enterprise Edition 可用于 MySQL 5.6。具体来说,MySQL Enterprise 5.6.10 包括以前仅在 MySQL 5.5 中可用的这些组件:MySQL Enterprise Security(PAM 和 Windows 身份验证插件)、MySQL Enterprise Audit 和 MySQL Thread Pool。有关这些功能的信息,请参阅 MySQL 企业版。要了解有关商业产品的更多信息,请参阅 https://www.mysql.com/products/。

此版本的已知限制:

在 Microsoft Windows 上,当使用 MySQL 安装程序在具有不同版本(例如 5.5.30)的现有 MySQL Server 的主机上安装 MySQL Server 5.6.10 时,该主机也具有不同的许可证(社区与商业),您必须首先更新现有 MySQL 服务器的许可证类型。否则,MySQL Installer 将删除与您为 MySQL Server 5.6.10 选择的许可证不同的 MySQL Server。

在 Microsoft Windows 8 上,将社区版本更新为商业版本需要您在更新后手动重启 MySQL 服务。

连接管理说明

  • 对服务器用于处理密码过期帐户的客户端连接的沙盒模式进行了以下更改:

    • 有一个新的 disconnect_on_expired_password 系统变量(默认值:启用)。这控制服务器如何处理过期密码帐户。

    • C API 客户端库中添加了两个标志: MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS formysql_options()CLIENT_CAN_HANDLE_EXPIRED_PASSWORDSfor mysql_real_connect()。每个标志使客户端程序能够指示它是否可以处理密码过期帐户的沙盒模式。

      MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS无条件地为mysqltest启用,对于交互模式下 的mysql ,如果第一个命令是 mysqladminpassword

    有关客户端标志如何与 交互的更多信息 disconnect_on_expired_password,请参阅服务器处理过期密码。(缺陷 #67568,缺陷 #15874023)

添加或更改的功能

  • InnoDB: 当使用压缩表时,计算缓冲池内存使用量的计算很复杂,因为压缩页面可能小于 16KB 或用户指定的 页面大小。尽管可以从 INFORMATION_SCHEMA.INNODB_BUFFER_PAGE 表中检索此信息,但该操作的开销很大。以下新状态变量有助于简化涉及缓冲池内存使用的计算:

    (漏洞 #15842637)

  • 复制:Auto_Position列已添加到生成的输出中SHOW SLAVE STATUS。此列的值显示是否正在使用复制自动定位。如果启用了自动定位——也就是说,如果MASTER_AUTO_POSITION = 1由在 CHANGE MASTER TO从站上执行的最后一个成功的语句设置——那么该列的值为 1;如果不是,则值为 0。(缺陷 #15992220)

  • 在为 Unbreakable Linux Network 构建的 RPM 包中, libmysqld.so现在有一个版本号。(漏洞#15972480)

  • 使用给定操作不支持的或 值的ALTER TABLE 语句的 错误消息非常通用。服务器现在生成更多信息性消息。(漏洞 #15902911)LOCKALGORITHM

  • 如果密码已过期的客户端已连接但 old_passwords不是选择适合客户端帐户的密码哈希格式所需的值,则客户端无法确定正确的值。现在服务器会自动为帐户身份验证方法适当地设置会话 old_passwords值。例如,如果帐户使用 sha256_password身份验证插件,则服务器设置old_passwords=2. (漏洞#15892194)

  • 系统validate_password_policy_number变量已重命名为 validate_password_policy. (漏洞 #14588121)

  • 在 JSON 格式EXPLAIN的输出中,attached_condition子查询的信息现在包括select#指示子查询执行的相对顺序。(漏洞 #13897507)

修正错误

  • 重要变更;复制: 用于在全局事务标识符中显示 UUID 的字母大小写不一致。现在,所有 GTID 值都使用小写字母,包括 的输出中的 Retrieved_Gtid_SetExecuted_Gtid_Set列中 SHOW SLAVE STATUS。(漏洞#15869441)

  • 表现; InnoDB: 一些与撤销日志相关的数据结构可能在查询期间被不必要地初始化,尽管它们只在特定条件下才需要。(漏洞 #14676084)

  • 表现; InnoDB:通过跳过冗余测试优化压缩表的 读取操作 检查是否需要从 插入缓冲区中合并任何相关更改的次数比必要的次数多。(错误#14329288,错误#65886)

  • 表现; InnoDB: 在创建表后,立即对其进行查询不会使用松散索引扫描ALTER TABLE同一查询可能会在表上的之后使用松散索引扫描min()该修复提高了涉及分组函数和的查询的成本估算的准确性 max(),并防止 ALTER TABLE语句更改查询计划。(更稳定的查询计划可能会也可能不会使用松散索引扫描。)(缺陷 #14200010)

  • InnoDB: 当表的主键包含列前缀,并且表上定义了全文索引时,全文搜索导致将不必要的警告写入错误日志。此修复抑制了不必要的警告。(漏洞 #16169411)

  • InnoDB:在线 DDL操作,还执行以下任何 DROP FOREIGN KEY一项的语句中不允许ALTER TABLE

    • 添加或删除列。

    • 添加或删除 主键索引。

    • 制作专栏NULLNOT NULL.

    • 重新排序列。

    • 更改ROW_FORMATKEY_BLOCK_SIZE属性。

    (漏洞 #16095573,漏洞 #68019)

  • InnoDB: 在关闭期间发出了一些 Valgrind 警告,同时清理处理包含FULLTEXT索引的表的优化的后台线程。(漏洞 #15994393)

  • InnoDB:在线 DDL 操作期间,将列从可空更改为NOT NULL可能会成功或失败,具体取决于ALTER TABLE语句是使用ALGORITHM=INPLACE还是 ALGORITHM=COPY. ALGORITHM=COPY即使列包含NULL值,with 操作 ALGORITHM=INPLACE失败,因为列可能包含 NULL值。现在, 允许NOT NULL与子句结合使用 配置选项包含 or 设置。如果ALGORITHM=INPLACEsql_modeSTRICT_TRANS_TABLESSTRICT_ALL_TABLESALGORITHM如果语句中没有指定子句ALTER TABLE,则在线 DDL 操作将 ALGORITHM=INPLACE尽可能使用,否则 将使用ALGORITHM=COPY。(漏洞 #15961327)

  • InnoDB: 在某些情况下,InnoDB使用ALTER TABLE ... IMPORT TABLESPACE. 该问题伴随着以下消息之一:

    Warning  : InnoDB: The B-tree of index "PRIMARY" is corrupted.
    error    : Corrupt

    或者:

    Warning  : InnoDB: The B-tree of index "GEN_CLUST_INDEX" is corrupted.
    error    : Corrupt

    此问题间歇性发生,主要影响大型表。该REPAIR TABLE 语句将修复错误消息报告的问题。(漏洞 #15960850,漏洞 #67807)

  • InnoDB:在线 DDL操作 创建的索引名称在 INFORMATION_SCHEMA表中显示不正确 此修复可确保表名的前导0xff字节被剥离以供 INFORMATION_SCHEMA查询。此更改影响列:

    • innodb_buffer_page.index_name

    • innodb_buffer_page_lru.index_name

    • innodb_cmp_per_index.index_name

    • innodb_cmp_per_index_reset.index_name

    • innodb_locks.lock_index

    • innodb_sys_indexes.name

    (漏洞 #15946256)

  • InnoDB: ALTER TABLE使用 在线 DDL功能的语句可能会导致 Valgrind 警告。(漏洞 #15933178)

  • InnoDB: 如果添加唯一索引的在线 DDL 操作失败,因为在在线 DDL 操作期间并发 DML 创建了重复项,ALTER TABLE 操作失败,错误类型错误。它返回了 ER_INDEX_CORRUPT;现在它返回新的错误代码 ER_DUP_UNKNOWN_IN_INDEX。(它不返回ER_DUP_KEY,因为当这种情况发生时重复键值不可用以报告。)(缺陷 #15920713)

  • InnoDB: 在 添加唯一索引的在线 DDL操作期间,即使索引尚未可见,创建重复值的 DML操作也可能会失败并出现错误。(这种情况可能会出现一个短暂的时间窗口。)如果索引因并发 DML 生成的重复条目而无效,则修复会导致索引创建操作失败。(漏洞 #15920445)ER_DUP_KEY

  • InnoDB:innodb_log_file_size在 64 位 Windows 系统上无法 指定 4GB 或更大的 此问题仅影响调试版本。(漏洞 #15882860)

  • InnoDB:如果服务器在在线 DDL 语句快 结束时崩溃 使用该ALTER TABLE的后续可能会导致严重错误。(漏洞 #15878013)CHECK TABLEEXTENDED

  • InnoDB:如果表是使用子句CHAR 具有不同长度字符集的表, 在列上创建索引(漏洞 #15874001)utf8ROW_FORMAT=REDUNDANT

  • InnoDB: 此修复可确保在ALTER TABLE复制原始表的操作期间出现严重的未处理错误时,数据恢复可能需要的任何数据都将保留在使用 或 . (漏洞#15866623)#sql-ib-table_id#mysql50##sql-ib-table_id

  • InnoDB: 状态变量 Innodb_buffer_pool_read_ahead_evicted 可能显示一个不准确的值,高于预期,因为缓冲池中的某些页面被错误地认为是由 预读请求引入的。(漏洞 #15859402,漏洞 #67476)

  • InnoDB:如果表在列的列前缀上也有索引,则向表添加主键在线 DDL操作。 BLOB

    如果要删除包含页外列的任何行,则 此修复会在通过语句重建表时 暂停后台 清除操作 。目前,为避免在线 DDL 操作期间占用过多空间,请在完成之前避免这些类型的并发 DML操作 : ALTER TABLEALTER TABLE

    • DELETE包含页外列的行数。

    • UPDATE包含页外列的行中的主键列。

    • UPDATE离页列。

    (漏洞 #14827736)

  • InnoDB: 服务器在创建索引时可能会因断言错误而停止:

    InnoDB: Assertion failure in thread thread_num in file row0merge.cc line 465

    此问题影响了具有 ROW_FORMAT=REDUNDANT 页外列列前缀索引的组合的表。(漏洞 #14753402)

  • InnoDB:在使用多字节字符集为列 的列前缀 创建索引时,服务器可能会因断言错误而停止

    InnoDB: Assertion failure in thread thread_num in file row0merge.cc line 465
    InnoDB: Failing assertion: len == ifield-<fixed_len

    (漏洞 #14753402)

  • InnoDB: 错误#14100254 的修复引入的回归将导致!BPAGE->FILE_PAGE_WAS_FREED断言。(漏洞 #14676249)

  • InnoDB: INFORMATION_SCHEMA具有 InnoDB元数据的表,例如 innodb_sys_tablestats,使用编码格式在表名中显示非字母数字字符,例如 with@0024 instead of$。(漏洞 #14550145)

  • InnoDB: 如果 的值 innodb_force_recovery小于 6,如果在计算表的统计信息时读取损坏的页面,则打开损坏的表可能会永远循环。有关损坏页面的信息被重复写入错误日志,可能导致磁盘空间问题。此修复会导致服务器在尝试读取页面失败一定次数后停止。要解决此类损坏问题,请设置 innodb_force_recovery=6并重新启动。(缺陷 #14147491,缺陷 #65469)

  • InnoDB: 对于 的值很大 innodb_buffer_pool_size,并且 innodb_buffer_pool_instances 设置大于 1,页面被错误地 从缓冲池中逐出。(漏洞 #14125092)

  • InnoDB:表 损坏 innodb_ft_user_stopword_table可能导致服务器退出。(缺陷 #67960,缺陷 #16038656)

  • 分区: 现在对使用提供自动分区的存储引擎(例如 NDB存储引擎)但显式分区的表启用分区修剪。以前,使用这种存储引擎的所有表都禁用修剪,无论这些表是否明确定义了分区。

    NDB此外,作为此修复的一部分,现在对使用提供自动分区 的存储引擎(例如 )的表禁用显式分区选择 。(漏洞 #14827952)

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

  • 复制: 当使用基于 GTID 的复制时,每当事务在主服务器上执行但未发送到从服务器,因为从服务器已经有一个具有该 ID 的事务时,半同步复制超时。可能发生这种情况的一种情况是在故障转移操作期间,新主服务器在新从服务器后面启动。(漏洞 #15985893)

  • 复制: 当用作复制信息存储库类型时,在每个事务后执行的不必要的磁盘刷新FILE可能会降低性能。现在只有当数据和中继日志信息都存储在(事务)表中时才会这样做。(漏洞 #15980626)

  • 复制: 发行, 覆盖大量(数千万或数亿)交易,可能导致服务器挂起。(漏洞 #15968413)START SLAVE UNTIL SQL_BEFORE_GTIDS = gtid_setgtid_set

  • 复制: 当从站开始使用 --skip-innodb 复制信息文件存储库(和 FILE 的默认 值)时,复制被错误地停止。但是,如果从服务器正在使用文件存储库并且当前没有在信息存储库之间迁移,则复制应该能够正常工作。现在,服务器会忽略在这种情况下尝试打开表信息存储库时引发的错误。 master_info_repositoryrelay_log_info_repository

    另外,用 启动slave 时没有正确进行二进制日志初始化 --skip-innodb,导致 --log-bin option被忽略。(错误#15956714、错误#67798、错误#15971607)

  • 复制: 当临时表和持久表,或者使用不同存储引擎的临时表在单个语句中被删除时,这个语句实际上是作为两个语句写入二进制日志的,每个语句由它自己的日志事件表示。时 gtid_modeON每个DDL事件必须有一个GTID;然而,在这种情况下,删除临时表的语句是未提交的,这意味着它没有被赋予自己的 GTID。

    现在,当删除临时表和持久表或使用不同存储引擎的 DDL 语句以刚才描述的方式分开时,并且生成的仅影响临时表的记录语句不会隐式提交,提交被强制使相应的日志事件具有自己唯一的 GTID。(漏洞 #15947962)

  • 复制: 半同步复制在启用 GTID 的情况下无法正常工作。(漏洞 #15927032)

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

  • 复制: 当用于由支持 GTID 的服务器写入的二进制日志时, mysqlbinlog无法正确处理因遗漏语句而未关闭的事务,这些语句在使用该 --database选项时被忽略。

    现在,每当mysqlbinlog --database读取 GTID 日志事件时,它都会检查是否有未关闭的事务,如果有,则发出提交。(漏洞 #15912728)

  • 复制: 启用 GTID 后,当客户端断开连接时自动删除临时表并不总是生成 GTID。现在,每个记录DROP TABLE 的语句,包括服务器生成的任何语句,都保证有自己的 GTID。(漏洞 #15907504)

  • 复制: 当一个二进制日志在服务器上被重放时(例如,通过执行类似mysqlbinlog binlog.000001 | mysql的命令),它在使用的客户端连接上设置一个伪从模式,以便服务器可以读取二进制日志并应用二进制日志事件正确。但是,在读取二进制日志转储后,伪从模式没有被禁用,这导致在同一连接上后续执行的 SQL 语句中应用了意外的过滤规则。(漏洞#15891524)

  • 复制: 从从表的版本中删除一列,然后在主表上更改该表的同一列(如果该列未在从表上删除,则需要进行类型转换),插入到该表中导致复制失败。(漏洞 #15888454)

  • 复制: 使用sql_slave_skip_counter 与基于 GTID 的复制不兼容。现在无论何时都不允许将此变量设置为非零值 --gtid-mode = ON,并且尝试这样做会失败并出现错误。(漏洞#15833516)

  • 复制:mysqld关闭期间,全局 GTID 变量在确定所有插件已停止使用它们之前被释放。(漏洞 #14798275)

  • 复制: MASTER_POS_WAIT()当 GTID 协议跳过事务时,由于从属 SQL 线程的无效更新,可能会挂起或返回 -1。(漏洞 #14775893)

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

  • 复制: 尝试在多线程从站上执行停止事件可能会导致对中继日志进行不必要的更新,从而导致从站与主站失去同步。(漏洞 #14737388)

  • 复制: 未正确检查二进制日志查询日志事件中的数据库名称的长度。(漏洞 #14636219)

  • 复制:START SLAVE与设置同时 发出sql_slave_skip_counterslave_net_timeout可能导致死锁。(漏洞 #14236151)

  • 复制: 当使用基于语句的复制时,主从使用具有不同 AUTO_INCREMENT列的表模式,插入生成 AUTO_INCREMENT的值可能会应用于从属上的错误表。(漏洞 #12669186)

  • 复制:使用无效值 重复执行CHANGE MASTER TO语句 MASTER_LOG_POS可能会导致错误,并可能导致从站崩溃。现在在这种情况下,语句会失败并显示一条明确的错误消息。(错误#11764602,错误#57454)

  • Microsoft Windows: 不再允许动态文件名(带冒号)。使用 Microsoft Windows 的备用数据流 (ADS) NTFS 功能的静态文件名可能会继续使用。(漏洞 #11761752)

  • Oracle RPM 包由于文件中的行 yum问题而无法使用,导致yum 将包解释为过时了。(漏洞 #16298542)obsoletes.spec

  • 在客户端连接处理期间,服务器现在在 SSL 检查后执行密码过期检查。(漏洞 #16103348)

  • 插件记录例程错误处理了它的参数,导致未定义的行为。(漏洞 #16002890)

  • 修复了 yaSSL 中的缓冲区处理问题。(漏洞 #15965288)

  • 在存储过程中,执行使用非常长的表别名的多表 DELETE语句可能会导致服务器退出。(漏洞 #15954896)

  • 元数据锁定和表定义缓存例程并不总是检查传递给它们的名称的长度。(漏洞 #15954872)

  • 在表上没有FULLTEXT索引 的情况下InnoDB,全文查询COUNT(*)可能会引发断言。(漏洞 #15950531)

  • 在极少数情况下,使用的查询 UpdateXML()可能会导致服务器崩溃。(漏洞 #15948580)

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

  • 查询中非常长的表别名可能会导致服务器退出。(漏洞 #15948123)

  • 尽管表上没有足够的锁,但删除索引的联机 DDL 操作仍可以继续进行。此问题可能导致严重错误,尽管该错误仅在调试版本中观察到。(漏洞 #15936065)

  • 添加到该选项的mysqldump输出 的注释--set-gtid-purged格式错误,并在重新加载转储文件时导致语法错误。(漏洞 #15922502)

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

  • 终止处理期间线程池中的争用可能导致 Valgrind 恐慌。(漏洞 #15921866)

  • 修复了几个与 OpenSSL 相关的内存泄漏问题。(漏洞 #15921729)

  • ALTER TABLE语句现在可以使用LOCK=NONE子句,允许 在线 DDL和并发DML,用于 包含 外键约束的子表。(漏洞 #15912214)

  • 查询中的非常长的数据库名称可能会导致服务器退出。(错误#15912213,错误#16900358)

  • AES_DECRYPT()AES_ENCRYPT()在使用 OpenSSL 编译 MySQL 时发生内存泄漏。(漏洞 #15909183)

  • 更正了几个与 OpenSSL 相关的 Valgrind 警告。(漏洞 #15908967)

  • 如果主键唯一索引的列包含重复条目,则ALTER TABLEwith the ADD PRIMARY KEYorADD UNIQUE INDEX子句可能会遇到严重错误。此错误间歇性发生,具体取决于行在索引块中的物理分布方式。(漏洞 #15908291)

  • Rows_log_event为行缓冲区分配的字节太少。(漏洞 #15890178)

  • 性能模式通常会忽略临时表事件。用户定义的临时表因重新创建而被截断,但性能模式未将重新创建的临时表识别为临时表并提出断言。(漏洞 #15884836)

  • Fortify 发现的几个代码问题已得到纠正。(漏洞 #15884324)

  • 在调试版本中,当为 指定 16 GB 或更高的值时,服务器无法在 64 位 Windows 系统上启动 innodb_buffer_pool_size。非调试构建可能会有更微妙的问题,例如为 缓冲池分配但未使用的内存,或者读取请求忽略了已缓存在缓冲池中的页面。

    在 32 位 Windows 系统上 innodb_buffer_pool_instances,由于内存分配的系统限制,必要时会增加 的值,以便没有缓冲池实例大于 1.3 GB。32 位 Windows 系统所需的这种自动调整也错误地应用于 64 位系统;对于具有 16 GB 或更大缓冲池的系统,调整后的值 innodb_buffer_pool_instances将超过 64 的上限,从而导致调试构建中出现断言错误。(漏洞 #15883071)

  • 主服务器表上的在线 DDL和并发DML 的繁重工作负载可能会导致错误,因为更改会被复制到从属服务器。例如,如果语句以与主服务器上不同的顺序完成,则在引用删除列的查询的同时处理操作可能会导致从服务器上出现错误。(漏洞 #15878880)DROP COLUMN

  • 复杂IN的子查询可能导致服务器退出。(漏洞#15877738)

  • 在某些情况下,成本值会在未初始化的情况下打印到优化器跟踪输出,从而导致输出不正确。(漏洞 #15877453)

  • 一些查询,如果用作准备好的语句,会导致服务器在发生错误时退出。(漏洞 #15877062)

  • 如果在线 DDL操作 的最后阶段发生错误,则 有关该表的一些缓存元数据可能无法恢复到其原始状态。此问题通常会影响重命名列的操作,还会在同一ALTER TABLE语句中删除并重新创建该列的索引。此问题不影响重组表的 聚集索引的操作,例如添加新的主键。(漏洞#15866734)

  • 如果谓词与其他谓词一起使用,优化器在IN -> EXISTS子查询转换和子查询实现 之间基于成本的选择有时是不正确的。(漏洞 #15866339)INOR

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

  • Performance Schema表session_connect_attrs 显示了无关信息。(漏洞 #15864703)

  • 对于 LooseScan 半连接策略,优化器可以依赖未初始化的变量。(漏洞 #15849654)

  • 即使帐户由不支持密码过期的身份验证插件进行了身份验证,也有可能使帐户的密码过期。(漏洞 #15849009)

  • 如果将松散索引扫描用于降序查询,则结果集包含NULL值而不是正确值。(漏洞 #15848665)

  • 对于调试版本,在以下情况下可能会引发断言:1) 视图基于MEMORY表;2) 该表被更改为删除视图正在使用的某些列;3) A SELECT在禁用二进制日志记录的视图上完成。(漏洞#15847447)

  • 如果服务器意外关闭, InnoDB具有 1018 列(非常接近 1020 列的上限)的表的存在可能会在服务器重启期间导致断言错误:

    InnoDB: Failing assertion: table->n_def == table->n_cols - 3

    (漏洞 #15834685)

  • 子查询COUNT(DISTINCT ...))可能会导致服务器退出。(漏洞 #15832620)

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

  • 设置 validate_password_length系统变量没有考虑到最小值是其他几个相关系统变量的函数。现在服务器不会将值设置为小于此表达式的值:

    validate_password_number_count
    + validate_password_special_char_count
    + (2 * validate_password_mixed_case_count)

    (漏洞 #14850601)

  • GRANT ... IDENTIFIED BY可能无法刷新特权。(漏洞 #14849959)

  • 当服务器读取该mysql.user表时,它现在会检查无效的本机和旧本机密码哈希值,并忽略具有无效哈希值的帐户。(漏洞 #14845445)

  • validate_password插件没有检查某些密码。(漏洞 #14843970)

  • mysqladmin没有正确处理密码过期用户的命令。(漏洞 #14833621)

  • 在 Windows XP 或更早的系统上关闭期间 MySQL 可能会遇到错误。此问题不影响运行 Windows Vista 或更高版本的系统,这些系统使用原子条件变量来表示 Windows 事件。(漏洞 #14822849)

  • 系统表和 InnoDB 数据字典的锁定顺序问题 可能导致 MySQL 内部死锁。(漏洞 #14805484)

  • 在执行 INFORMATION_SCHEMA查询期间创建临时表可能会导致 Valgrind 警告。(漏洞 #14801497)

  • 当与包含存储函数输出的 XPath 表达式一起使用时,ExtractValue() 失败并出现错误Only constant XPATH queries are supported。(漏洞 #14798445,漏洞 #67313)

  • 由于最近添加的错误代码,服务器可能会因断言错误而停止:

    InnoDB: unknown error code 1502
    InnoDB: Assertion failure in thread thread_num in file row0mysql.cc line 683
    mysqld got signal 6 ;

    DB_DICT_CHANGED现在,服务器在这种情况下 将错误代码返回 给客户端。(漏洞 #14764015)

  • 如果在将更改应用于某些基础表而不是全部基础表时发生崩溃,则分区表语句中 的 clauseALGORITHM=INPLACE子句 可能会导致一致性问题。ALTER TABLE此修复禁止 ALGORITHM=INPLACE对分区表执行 DDL 操作的子句。(漏洞 #14760210)

  • 身份验证插件要求客户端使用sha256_passwordSSL 连接或启用 RSA。当两个条件都不满足时,将生成一条无意义的错误消息。现在,错误消息提供了更多信息。(漏洞 #14751925)

  • 如果优化器使用临时表处理分组,则使用游标执行时使用分组的查询失败。(漏洞 #14740889)

  • XA START有可能导致服务器崩溃的竞争条件。(漏洞 #14729757)

  • 当使用 MyISAM存储引擎(而不是 MEMORY)实现派生表时,服务器可能会退出。(漏洞 #14728469)

  • 如果为系统变量指定的文件 validate_password_dictionary_file 违反了对有效密码文件内容的限制,服务器现在会在启动时记录警告。(漏洞 #14588148)

  • 涉及自相交多边形的计算导致提出断言。(漏洞 #14503584)

  • 在启动时,一些选项和系统变量 variables 可以设置为 1 或 0,但不能设置为ONor OFF。MySQL 程序现在 在命令行和选项文件中接受ON和。OFF(漏洞 #14494893)

  • 使用mysqldump --routines 生成的输出 在重新加载时可能会产生语法错误。(漏洞 #14463669)

  • 如果ALTER TABLE被杀死,ER_QUERY_INTERRUPTED即使更改成功,服务器也可以报告。这会误导用户。此外,该语句不会写入二进制日志,导致不正确的复制(缺陷 #14382643)

  • ONLY_FULL_GROUP_BY 启用 SQL 模式的情况下,两次执行包含在启用该模式下无效的 SQL 查询的存储函数会导致服务器退出。(漏洞 #13996639)

  • 预加载使用 LIBMYSQL_PLUGINS环境变量指定的客户端插件可能会失败,除非插件位于硬连接的默认插件目录中。C API 现在在插件预加载期间检查LIBMYSQL_PLUGIN_DIR环境变量,该环境变量可以设置为在其中查找客户端插件的目录的路径名。

    此外,对于显式客户端插件加载, C APImysql_load_plugin()mysql_load_plugin_v()C API 函数已修改为使用 LIBMYSQL_PLUGIN_DIR值(如果存在--plugin-dir且未提供选项)。如果 --plugin-dir给出, mysql_load_plugin()mysql_load_plugin_v()忽略 LIBMYSQL_PLUGIN_DIR。(错误#13994567,错误#18110355)

  • 解析器无法为某些无效 UNION构造返回错误。(漏洞 #13992148)

  • 由于线程竞争条件,服务器可能会在尝试读取 Performance Schema threads.PROCESSLIST_INFO列时退出。(漏洞 #68127,漏洞 #16196158)

  • 服务器写入错误日志的某些消息引用了已弃用的--log-slow-queries选项而不是该--slow-query-log选项。同样,服务器引用了已弃用的--log 选项,而不是--general-log-file--log-output选项。(缺陷 #67892,缺陷 #15996571)

  • 自动调整性能模式参数的大小可能会导致导致 CPU 使用过多的设置。(缺陷 #67736,缺陷 #15927744)

  • 对于单表DELETEUPDATE语句, 即使优化器选择通过索引访问方式扫描表,也EXPLAIN显示 type为(全表扫描访问方式)的值。ALL现在该 type值显示为 index。(缺陷 #67637,缺陷 #15892875)

  • 在某些情况下,当子查询实现成本更低时,优化器可以选择 子查询执行的IN转换EXISTS 。(缺陷 #67511,缺陷 #15848521)

  • 不允许使用自定义分区和外键CREATE TABLE创建表。NDB但是,可以NDB使用外键创建一个表,然后使用 向其添加分区 ,从而创建一个无法使用mysqldumpALTER TABLE备份或恢复的表 。现在,禁令一直在执行。(漏洞 #67492,漏洞 #15844519)

  • 当查询包含LIMIT子句时,优化器有时会选择非最佳范围扫描策略。(缺陷 #67432,缺陷 #15829358)

  • 尝试执行从 MySQL 5.1 到 5.6 的就地升级会导致服务器由于两个系列中的权限结构不匹配而退出。(这不是受支持的操作,但服务器不应异常退出。)(缺陷 #67319,缺陷 #14826854)

  • mysqldump可能无法转储mysql数据库中的所有表。(缺陷 #67261,缺陷 #14771252)

  • 在表中进行全文搜索InnoDB可能会返回不正确的结果。(缺陷 #67257,缺陷 #14771282)

  • Performance Schema 通常会忽略临时表事件,但有时无法将表正确识别为临时表,因此无法为该表记录事件。(漏洞 #67098,漏洞 #14756887)

  • 如果mysql客户端出 现在正在查找引用字符串结尾的delimiter行上,则该命令可能会错误处理。mysql(缺陷 #64135,缺陷 #13639125)

  • DECIMAL乘法运算可能会产生严重的不准确性。(错误#45860,错误#11754279)