Documentation Home
MySQL 5.6 发行说明  /  MySQL 5.6.13 的变化(2013-07-31,全面上市)

MySQL 5.6.13 的变化(2013-07-31,全面上市)

此版本的已知限制:

笔记

在 Microsoft Windows 上,MySQL Installer 不会将 MySQL Enterprise Backup (MEB) 3.8.1 升级到 3.8.2(最新版本)。解决方法是卸载 MEB 3.8.1,然后使用 MySQL 安装程序安装 MEB 3.8.2(最新版本)。

笔记

如果您有InnoDB带有全文搜索索引的表,并且您正在从 MySQL 5.6.10 升级到 MySQL 版本(包括 MySQL 5.6.18),则服务器将在升级后无法启动(错误#72079)。此错误已在 MySQL 5.6.19 中修复。解决方法是在升级之前删除全文搜索索引,并在升级完成后重建全文搜索索引。

弃用和移除说明

  • 以前,程序选项可以完整指定或指定为任何明确的前缀。例如, --compress可以将选项赋予mysqldump as --compr,但不能赋予 as ,--comp 因为后者不明确。选项前缀现在已弃用。当为程序实施新选项时,它们可能会导致问题。当前明确的前缀将来可能会变得不明确。如果给出明确的前缀,现在会出现警告以提供反馈。例如:

    Warning: Using unique option prefix compr instead of compress is
    deprecated and will be removed in a future release. Please use the
    full name instead.

    MySQL 5.7 不再支持选项前缀;只接受完整选项。(漏洞#16996656)

添加或更改的功能

  • 不兼容的更改: 以前,Performance Schema 语句检测不包括在从属复制服务器上执行的语句。statement/rpl/relay_log为了解决这个问题,表中添加了一个新的抽象工具 setup_instruments。在知道确切的语句类型之前,在复制语句分类的早期阶段使用该工具。

    此外,statement/com/抽象语句工具更名为 statement/com/new_packet.

    引用旧仪器名称的应用程序必须更新为新名称。有关在语句分类中使用抽象工具的更多信息,请参阅 性能模式语句事件表。(错误#16750433,错误#17271055)

  • 重要变更;复制: 默认情况下,当将整数从 master 上的较小类型提升到 slave 上的较大类型时(例如,从 SMALLINTmaster 上的BIGINT列到 slave 上的列),提升后的值被视为已签名. 现在在这种情况下,可以使用 服务器系统变量指定的一组值中的ALL_SIGNED一个 有关详细信息,请参阅 基于行的复制:属性提升和降级,以及变量的说明。(漏洞 #15831300)ALL_UNSIGNEDslave_type_conversions

  • C APIlibmysqlclient共享库 .so文件现在有版本 18.1.0(从 MySQL 5.5 中使用的版本 18.0.0 开始)。18.1.0 可用作 18.0.0 的替代品。(错误#16809055、错误#59106、错误#12407476)

  • 在批处理模式下,mysql 会格式化结果状态消息,例如“Query OK, 1 row affected”,但不会打印它们。现在这些消息没有格式化。(漏洞 #69486,漏洞 #16971432)

修正错误

  • Incompatible Change:DEFAULT值可能在建表时有效,在插入或更新行时sql_mode无效 sql_mode例子:

    SET sql_mode = '';
    CREATE TABLE t (d DATE DEFAULT 0);
    SET sql_mode = 'NO_ZERO_DATE,STRICT_ALL_TABLES';
    INSERT INTO t (d) VALUES(DEFAULT);

    在这种情况下,应该接受 0 CREATE TABLE而拒绝 0 INSERT。但是,以前服务器不会DEFAULT根据当前 sql_mode. 在示例中, INSERT成功并插入 '0000-00-00'DATE列中。

    服务器现在应用适当的 sql_mode检查以在插入或更新时生成警告或错误。

    如果您使用基于语句的日志记录 ( binlog_format=STATEMENT),则导致的复制不兼容是,如果从属服务器升级,未升级的主服务器将无错误地执行前面的示例,而 INSERT从属服务器将失败并且复制将停止。

    要处理这个问题,请停止主服务器上的所有新语句并等待从服务器赶上来。然后升级奴隶,然后升级主人。或者,如果您不能停止新语句,请暂时更改为在主服务器上进行基于行的日志记录 ( binlog_format=ROW) 并等待所有从服务器处理到此更改点之前生成的所有二进制日志。然后升级从属服务器,然后升级主服务器,并将主服务器更改回基于语句的日志记录。(缺陷 #68041,缺陷 #16078943)

  • 重要变更;表现; InnoDB: InnoDB无法打开具有多个数据文件的表空间。这消除了 MySQL Server 5.6.12 中的已知限制。(错误#17033706,错误#69623)

  • 表现; InnoDB: MySQL 5.6 中引入的代码回归对性能产生了负面 DROP TABLE影响 ALTER TABLE。这可能会导致 MySQL Server 5.5.x 和 5.6.x 之间的性能下降。(漏洞 #16864741,漏洞 #69316)

  • 表现; InnoDB:innodb_thread_concurrency 设置为非零值时,有可能 innodb_concurrency_tickets 在读取每一行后全部释放,导致每次读取后进行并发检查。这可能会影响所有查询的性能。一种症状可能是系统 CPU 使用率较高。如果您使用此设置,我们强烈建议您升级到 MySQL Server 5.6.13。这可能会导致 MySQL Server 5.5.x 和 5.6.x 之间的性能下降。(错误#68869,错误#16622478)

  • InnoDB:使用IN BOOLEAN MODE修饰符 的全文搜索将导致断言失败。(漏洞 #16927092)

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

  • InnoDB:CHECK TABLE发现包含错误数量条目的二级索引时,它会报告错误但不会将索引标记为已损坏。 CHECK TABLE现在遇到此错误时会将索引标记为损坏,但只有索引被标记为损坏,表不会。结果,只有索引变得不可用,直到它被删除并重建。该表不受影响。(漏洞 #16914007)

  • InnoDB: InnoDB将尝试收集有关部分创建的索引的统计信息。(漏洞 #16907783)

  • InnoDB:服务器会在memcached设置操作 期间崩溃失败是由于 utf8CHAR列的填充长度值造成的。在 memcached更新操作期间,旧元组中的字段将被复制,其数据长度小于填充的 utf8CHAR列值。此修复可确保不会复制旧元组。相反,每次都会创建一个新的元组。(漏洞 #16875543)

  • InnoDB: InnoDB 缓冲池 的两个INFORMATION_SCHEMA表可能显示读取固定块的无效页面类型。此修复将显示 I/O 固定读取块的未知页面类型。(漏洞 #16859867)

  • InnoDB:InnoDB删除了编译memcached 插件 时出现的无效编译警告消息(漏洞 #16816824)

  • InnoDB: 在超过 96 列的表的全文搜索索引中插入或替换行时会发生内存泄漏。(漏洞 #16809167)

  • InnoDB: 在插入缓冲区合并期间,InnoDB 将调用 lock_rec_restore_from_page_infimum()可能无效的记录指针。(漏洞 #16806366)

  • InnoDB:表中 的innodb_rwlock_x_spin_waits项目 INFORMATION_SCHEMA.INNODB_METRICS 将显示与项目相同的值 innodb_rwlock_x_os_waits。(漏洞 #16798175)

  • InnoDB:OPT_CHECK_ORDER_BY在调试版本中,在搜索字符串中直接使用二进制时 可能会出现断言 NULL字节和其他无意义的字符。此修复程序将在运行搜索之前删除无意义的字符。(漏洞#16766016)

  • InnoDB: Valgrind 测试返回了内存泄漏错误,这是由修复 Bug #11753153 引入的回归引起的。该 dict_create_add_foreign_to_dictionary 函数将调用pars_info_create但未能调用pars_info_free. (漏洞 #16754901)

  • InnoDB: 压缩page_zip_validate()页面后一致性检查失败,在 page_zip_compress(). 此问题是由 引起的当记录不包含用户数据字节时page_zip_decompress()未能正确设置 heap_no例如,当主键为空字符串且所有二级索引字段为 NULL 或空字符串时,会出现没有用户数据字节的记录。(漏洞 #16736929)

  • InnoDB:在表导出期间修改了外键约束 标识符中的某些字符 (漏洞 #16722314,漏洞 #69062)

  • InnoDB: 陈旧InnoDB的 memcached 连接会导致内存泄漏。(漏洞 #16707516,漏洞 #68530)

  • InnoDB:ALTER TABLE ... ADD KEY和 之间会出现竞争条件 INSERT ,导致无法清除记录错误。(漏洞 #16628233)

  • InnoDB: 非常大InnoDB的全文搜索 (FTS) 结果可能会消耗过多的内存。此错误修复减少了 FTS 结果的内存消耗,并引入了一个新的配置参数, innodb_ft_result_cache_limit它将 InnoDBFTS 查询结果缓存的默认大小限制设置为 2000000000 字节。 innodb_ft_result_cache_limit 具有无限的最大值,可以动态设置。(漏洞 #16625973)

  • InnoDB: 在事务提交期间, prepare_commit_mutex获取以保留提交顺序。如果提交操作失败,事务将被回滚,但互斥锁不会被释放。随后的插入操作将无法获取相同的互斥体。此修复程序 prepare_commit_mutexinnobase_rollback. (漏洞 #16513588)

  • InnoDB: 当InnoDB shutdown mode(innodb_fast_shutdown)设置为2,master线程进入flush循环后,在某些情况下线程会无法退出。这可能会导致关机挂起。(漏洞#16411457)

  • InnoDB: 以只读模式重新启动 InnoDB 并运行工作负载偶尔会返回一个global_segment < os_aio_n_segments断言。(漏洞 #16362046)

  • InnoDB: 打印 UTF-8 表名时,InnoDB 会截断表名,导致缓冲区不完整和随后的 Valgrind 错误。此错误修复还解决了不正确的调试错误消息。(漏洞 #16066351)

  • InnoDB: 尝试在 innodb_read_only模式下创建表导致以下错误:ERROR 1015 (HY000): Can't lock file (errno: 165 - Table is read only)。(漏洞 #15963619)

  • InnoDB: 创建大量表,每个表都有一个全文搜索索引,可能会导致过多的内存消耗。此错误修复添加了一个新的配置参数, innodb_ft_total_cache_size它定义了全文搜索索引的全局内存限制。如果索引操作达到全局限制,则会触发强制同步。(错误#14834698,错误#16817453)

  • InnoDB: 在错误日志中,在操作期间会报告数据字典中缺少全文搜索索引 TRUNCATE TABLE。重启mysqldInnoDB后会报 如下 错误: “ InnoDB: Error: trying to load index idx13 for table test/g1 but the index tree has been freed. . (漏洞 #12429565)

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

  • InnoDB:row_check_index_for_mysql在索引扫描或操作期间检查 NULL 字段 的CHECK TABLE会不必要地迭代。感谢 Po-Chun Chang 提供的补丁解决了这个问题。(错误#69377,错误#16896647)

  • InnoDB:在布尔模式下 运行InnoDB全文搜索时,在*搜索字符串 ('*string') 会导致错误,而对于MyISAM,前缀星号将被忽略。InnoDB为确保和之间的兼容性 MyISAMInnoDB现在以与 相同的方式处理带前缀的星号MyISAM。(缺陷 #68948,缺陷 #16660607)

  • InnoDB: 按降序键顺序连续删除会导致InnoDB索引页不足。当 InnoDB索引页未满时,它会与左兄弟节点或右兄弟节点合并。为确定兄弟节点是否可用于合并而执行的检查未正常运行。(缺陷 #68501,缺陷 #16417635)

  • InnoDB: 设置foreign_key_checks=0 并运行ALTER TABLE以更改具有多个具有外键约束的表的数据库的外键列的字符集将使数据库处于不一致状态。由于检测到不一致,后续ALTER TABLE操作(使用该COPY 算法)foreign_key_checks=1部分执行的ALTER TABLE操作的恢复也会失败,导致被更改的表丢失。当使用子句运行相同的ALTER TABLE 操作时RENAME,不会检测到不一致,但如果ALTER TABLE操作由于其他原因失败,则部分执行的恢复ALTER TABLE失败,结果相同。

    foreign_key_checks在恢复以前的表定义时, 错误修复会暂时禁用 。(缺陷 #65701,缺陷 #14227431)

  • InnoDB: 创建带有注释或默认文本值的表,其中包含用反斜杠转义的撇号有时会导致 InnoDB 存储引擎忽略外键定义。(缺陷 #61656,缺陷 #12762377)

  • InnoDB:已初始化但从未使用过 的pthread_mutex, commit_threads_m已从代码库中删除。(缺陷 #60225,缺陷 #11829813)

  • 分区:当升级到 MySQL 5.5.31 或更高版本时,当遇到分区表时 ,一条消息会写入mysql_upgradeALGORITHM的输出中,该分区表需要选项来保持与原始文件的二进制兼容性;该消息包括 ALTER TABLE进行更改所需的声明。对于这样一个具有足够多分区的表,在ALTER TABLE可以写入完整语句之前,消息被错误截断。(漏洞 #16589511)

  • 分区: 当在WHERE 针对按范围分区的表的查询条件中指定范围时,并且指定的范围完全在其中一个分区内时,也会检查下一个分区的行,尽管它应该被删除。

    t 假设我们有一个使用以下 SQL 语句创建 的范围分区表:

    CREATE TABLE t  (
        id INT AUTO_INCREMENT,
        dt DATETIME,
        PRIMARY KEY (dt,id),
        UNIQUE KEY (id,dt)
    )
        PARTITION BY RANGE  COLUMNS(dt) (
            PARTITION p0 VALUES LESS THAN ('2013-01-01'),
            PARTITION p1 VALUES LESS THAN ('2013-01-15'),
            PARTITION p2 VALUES LESS THAN ('2013-02-01'),
            PARTITION p3 VALUES LESS THAN ('2013-02-15'),
            PARTITION pmax VALUES LESS THAN (MAXVALUE)
    );

    此处显示了在运行时出现此问题的查询示例 t

    SELECT COUNT(*) FROM t
        WHERE dt >= '2013-02-01' AND dt < '2013-02-15';

    在这种情况下,pmax即使WHERE 子句中给出的范围完全位于 partition 内,也会检查 partition p3。(漏洞 #16447483)

  • 分区: 删除分区表时, .par首先删除表的文件,然后再删除表定义或数据。这意味着,如果服务器在删除操作期间发生故障,则表可能处于不一致状态,既无法访问也无法删除。

    此问题的修复进行了以下更改:

    • 现在,删除分区表时, .par直到删除所有表数据后才会删除表的文件。

    • 在执行DROP TABLE分区表时,如果确定其 .par文件丢失,.frm则立即删除该表的文件,从而强制完成删除。

    (错误#13548704,错误#63884)

  • 复制: 导致错误 #16579083 中修复的问题的条件继续引发错误,即使条件本身不再导致问题发生。(漏洞 #16931177,漏洞 #69369)

    参考资料:另请参阅:Bug #16271657、Bug #16491597、Bug #68251、Bug #68569。此问题是 Bug #16579083 的回归。

  • Replication:rpl_semi_sync_master_timeout 设置为非常大的值时,半同步复制变得非常慢,尤其是当许多会话并行工作时。发现计算这个超时的代码是在等待循环本身内部,结果是增加值 rpl_semi_sync_master_timeout导致重复迭代。此修复改进了用于计算唤醒时间的方法,并将其移出等待循环,以便仅执行一次。(漏洞 #16878043,漏洞 #69341)

  • 复制:FLUSH TABLES WITH READ LOCK通过向STOP SLAVE从站发出新连接,然后SHOW SLAVE STATUS使用原始连接 ,可能会在发出后导致死锁

    对此的修复包括添加 系统变量,以控制在返回警告之前rpl_stop_slave_timeout等待从发出后停止的时间(以秒为单位) 。STOP SLAVE(漏洞 #16856735)

  • 复制: 一些使用变量的表达式没有被正确处理LOAD DATA。(漏洞 #16753869)

  • 复制: 在某些情况下, 尽管当前未实现此变量(该名称已保留以备将来使用)引用 Last_Error了输出列 现在在这种情况下,错误消息不再引用该变量。(漏洞 #16742886,漏洞 #69096)SHOW SLAVE STATUSGTID_NEXT_LIST

    参考资料:另请参阅:Bug #16715809、Bug #69045。

  • 复制:log_event.h如果头文件包含在包含多个源文件的应用程序中,则会 发生链接器错误 rpl_tblmap.cc包含在 log_event.h. 此修复程序将包含的内容移动 rpl_tblmap.cc到使用 log_event.h. (漏洞#16607258)

  • Replication:SHOW SLAVE STATUS当工作线程未能应用事件时 显示的错误事件组的 GTID 也未显示。现在在这种情况下,显示的文本Last_SQL_Error以(物理)主二进制日志坐标为前缀,以及gtid_next设置时的值。(漏洞 #16594095)

  • Replication:MASTER_USER specifying or MASTER_PASSWORDwith 时发出的警告 CHANGE MASTER TO由于多种原因不明确,已改为读取, Storing MySQL user name or password information in the master info repository is not secure,因此不推荐。请考虑为 START SLAVE 使用 USER 和 PASSWORD 连接选项;有关详细信息,请参阅 MySQL 手册中的“START SLAVE 语法”。 (错误#16460123、错误#16461303、错误#68602、错误#68599)

  • 复制: 由于事务的 GTID 已被记录而跳过事务后,所有剩余的已执行事务都被错误地跳过,直到 gtid_next指向不同的 GTID。

    为避免这种不正确的行为,所有事务(即使是那些已被跳过的事务)在提交或回滚时都被标记为未定义,因此每当在同一 SET @@SESSION.gtid_next语句之后执行第二个事务时都会抛出错误。(漏洞 #16223835)

  • 复制: 在从机上的客户端线程执行 a FLUSH TABLES WITH READ LOCK并随后在主机上进行一些更新后,从机在执行时挂起SHOW SLAVE STATUS。(漏洞 #68460,漏洞 #16387720)

  • 优化器未能检查面积计算的函数返回值,导致服务器退出。(缺陷号 23280059)

  • 可能会从消息缓冲区读取已关闭的连接。(漏洞 #17003702)

  • 在使用游标从 UNION查询中获取行时,服务器可能会退出。(漏洞 #16983143)

  • Sql_condition::set_subclass_origin()可以执行越界读取。(漏洞 #16969091)

  • 范围优化器错误地假定空间索引上的任何几何函数都以 ROWID 顺序返回行,这可能导致不正确的查询结果。(漏洞 #16960800)

  • keycache_*服务器启动期间变量 的初始化(请参阅多键缓存)可能会写入不正确的内存。(漏洞 #16945503)

  • 对于调试版本,inside 的不当使用SAFE_MUTEX 导致dbug.c不同的代码区域对互斥锁的大小和内容有不同的想法。这可能会导致越界内存写入。(漏洞 #16945343)

  • 性能模式可能会使用不正确的检测信息生成线程。(漏洞 #16939689)

  • 服务器对任何语句的LOCK_active_mi和 互斥锁进行 了过度锁定 ,即使模式与使用这些互斥锁的状态变量不匹配(, , , , )。现在尝试显示那些变量不会锁定那些互斥锁。这可能会导致数据稍微陈旧,但性能会更好。(漏洞 #16904035)active_mi->rli->data_lockSHOW STATUS LIKE 'pattern'Slave_heartbeat_periodSlave_last_heartbeatSlave_received_heartbeatsSlave_retried_transactionsSlave_running

  • InnoDB在表格 中进行全文短语搜索可能会读取不正确的内存。(漏洞 #16885178)

  • 不可能将多个主要版本的 MySQL 保存在同一个yum存储库中。(漏洞 #16878042)

  • INSERT ... ON DUPLICATE KEY UPDATE如果将没有默认值的列设置为 ,可能会导致服务器退出 DEFAULT。(漏洞#16756402)

    参考资料:这个问题是 Bug #14789787 的回归。

  • 在准备好的语句或存储例程中,如果子查询的 HAVING子句引用了父查询的 GROUP BY 的某些列,则服务器可能会退出。(漏洞 #16739050)

  • -DMY_ATOMIC_MODE_RWLOCKS=1在 MySQL 不支持无锁原子操作(例如 ARM)的平台上 编译失败 。(漏洞#16736461)

  • 修改了代码库以说明gcc 4.8 引入的新警告检查。(漏洞 #16729109)

  • 运行时系统变量没有显示mysqldopen_files_limit进程可能拥有 的文件描述符的实际数量,而是在调整启动时指定的值后请求的数量。(漏洞#16657588)

  • 服务器可能会做出有关帐户密码是否已过期的错误决定。(漏洞 #16604641)

  • session_connect_attrs在会话执行工作负载时 ,性能模式表中可能偶尔会丢失会话的某些行 。(漏洞 #16576980)

  • 从社区 SLES RPM 包升级到相同 MySQL 版本的商业包失败并出现冲突错误。(漏洞 #16545296)

  • 如果优化器正在使用松散索引扫描,则服务器可能会在尝试创建临时表时退出。(漏洞 #16436567)

  • 对嵌套子查询内的聚合表达式的引用可能会导致不正确的结果或服务器退出,其中聚合表达式是在引用外部两层以上的查询块中计算的。(漏洞#16436383)

  • 与 不同MyISAMInnoDB不支持对非索引列进行布尔全文搜索,但并未强制执行此限制,从而导致查询返回不正确的结果。(漏洞#16434374)

  • 全文搜索语法错误无法打印到标准输出。(错误#16429688,错误#16765397)

  • 当尝试评估子查询谓词SELECT (SELECT 1 FROM t1) IN (SELECT a FROM t1)的常量左侧参数时 ,表单查询可能会发生服务器退出 。IN(漏洞 #16369522)

  • TINYBLOB在列中的 a或 GEOMETRY列 的前缀上创建索引时可能会引发断言InnoDB。(错误#16368875、错误#18776592、错误#17665767)

  • 在调试版本中,范围优化器中因 ER_LOCK_DEADLOCKor ER_LOCK_WAIT_TIMEOUT错误而失败可能不会被检测到,并导致在向客户端发送响应时引发断言。在发布版本中,此问题表现为客户端收到一个OK失败的语句。(错误#16366994,错误#16247110)

  • 将某些选择时间或 BIGINT类型的子查询或转换为半连接会导致服务器在第二次执行准备好的语句或存储的程序时退出。(漏洞 #16319671)

  • do_copy_not_null() 服务器可能由于不正确的 -NULL值检查而 退出。(漏洞#16316564)

  • 如果在删除与多列索引关联的列后存在重复索引,则不会生成警告。(漏洞 #16315351)

  • SELECT DISTINCTwithWITH ROLLUP可能会导致Duplicate entry 'NULL' for key '<auto_key>'错误。(漏洞 #16314835)

  • 通常的失败登录尝试计费不适用于失败的COM_CHANGE_USER命令。(错误#16241992,错误#17357535)

  • 在执行准备好的语句期间引用的用户变量被设置为在执行结束时释放的内存。第二次执行该语句可能会导致在访问此内存时出现 Valgrind 警告。(漏洞 #16119355)

  • 准备好的语句中左表达式的错误优化可能导致服务器退出。(漏洞 #16095534)

  • 优化器跟踪可以打印不可用于范围访问的关键部分的范围。(漏洞 #14615536​​)

  • 语句中的密码在写入审计日志之前没有被混淆。(漏洞 #14536456)

  • INFORMATION_SCHEMA.INNODB_BUFFER_PAGE 对请求的table_name和 值 运行查询时 ,查询结果将包括没有或 值index_name的索引页。(漏洞 #14529666)table_nameindex_name

  • 客户端-服务器协议中的一些 命令没有对传入的网络数据包进行长度检查,这可能会导致格式错误的输入出现各种问题。(漏洞 #14525642)COM_xxx

  • 使用线程池插件时,正常的连接终止 Aborted_clients会导致状态变量增加。(漏洞 #14081240)

  • 在 Windows 上,表单的命令行选项 有效但 无效。 --opt_name="opt_value"--opt_name='opt_value'

    在所有平台上,对于形式的 Performance Schema 选项, 现在拒绝无效的仪器名称。(漏洞 #13955232)--performance_schema_instrument="instrument=value"

  • 如果以自定义安装或更改模式运行,MySQL 安装程序会提供无效的安装选项。(漏洞 #12928601)

  • 当这些函数引用同一复合键的不同列时,使用多个aggr_func(DISTINCT) 函数(其中 aggr_func()是聚合函数,例如)的 查询可能会返回不正确的结果 。COUNT()(漏洞 #12328597)

  • RPM 包没有为其内容提供小写标签。例如,服务器 RPM 表示它提供了 MySQL-server,但没有 提供mysql-server。(漏洞 #69830,漏洞 #17211588)

  • 选择空结果集(使用 WHERE 1=0或创建WHERE FALSE)与派生表的并集时,对派生表应用了不正确的筛选。(缺陷 #69471,缺陷 #16961803)

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

  • 对于带有ORDER BY ... LIMIT的查询,优化器可以为表访问选择一个无序索引。(漏洞 #69410,漏洞 #16916596)

  • 当内部缓冲区对于工作负载来说太小时,性能模式可能会在内部自旋循环中花费大量时间来尝试分配内存缓冲区,然后失败。(漏洞 #69382,漏洞 #16945618)

  • 如果SQL_CALC_FOUND_ROWS在前面的查询中没有,FOUND_ROWS() 应该返回结果集中的行数,但如果查询包含 ,这并不总是发生ORDER BY。(缺陷 #69271,缺陷 #16827872)

  • InnoDB在搜索包含撇号的单词时, 对表格进行全文搜索失败。(漏洞 #69216,漏洞 #16801781)

  • 如果一个UPDATE包含子查询的查询在内部引起死锁 InnoDB,则死锁没有被 SQL 层正确处理。SQL 层然后尝试在InnoDB回滚事务后解锁该行,在内部引发断言 InnoDB。(缺陷 #69127,缺陷 #16757869)

  • 某些LEFT JOIN查询GROUP BY可能会返回不正确的结果。(漏洞 #68897,漏洞 #16620047)

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

  • 对于排序规则 ,值和字符串的比较DATETIME无法正常工作 。utf8_unicode_ci(漏洞 #68795,漏洞 #16567381)

  • 对表的全文搜索在InnoDB搜索与+-运算符组合的文字短语时失败。(漏洞 #68720,漏洞 #16516193)

  • 使用扩展辅助键的优化(请参阅 索引扩展的使用)仅适用于 InnoDB,即使对于具有必要的底层功能的存储引擎也是如此。(漏洞 #68469,漏洞 #16391678)

  • 如果不可用, mysql_install_db会错误地尝试创建mysql.innodb_table_statsmysql.innodb_index_statsInnoDB(缺陷 #68438,缺陷 #16369955)

  • mysqldump假定数据库中存在 general_logslow_logmysql。如果调用它从不存在这些表的旧服务器转储表,则会失败。(漏洞 #65670,漏洞 #14236170)

  • 尝试从源 RPM 包构建可能会失败,因为构建过程试图引用 pb2user可能不存在的。(错误#64641、错误#13865797、错误#69339、错误#16874980)

  • 如果一个会话在一个表上有任何元数据锁,另一个试图CREATE TABLE [IF NOT EXISTS]访问同一个表的会话就会挂起。发生这种情况是因为在检查表是否已存在之前,在第二个会话中尝试获取表上的独占元数据锁。独占元数据锁与任何其他元数据锁都不兼容,因此如果另一个会话锁定了表,则该会话会在锁定超时期限内挂起。

    现在服务器首先尝试获取表上的共享元数据锁以检查它是否存在,如果不存在则升级为独占锁。如果该表确实存在,则会发生错误CREATE TABLE并发出警告 CREATE TABLE IF NOT EXISTS。(错误#63144,错误#13418638)

  • sql-common/client_plugin.c包含不可移植的va_list参数使用。(缺陷 #62769,缺陷 #13252623)

  • 在 64 位 x86 处理器上使用了 未优化版本的 xxxkorr()宏。my_global.h(缺陷 #61179,缺陷 #12565703)

  • 中的错字cmake/dtrace.cmake阻止了 DTrace 支持被启用 -DENABLE_DTRACE-on。(缺陷 #60743,缺陷 #12325449)

  • 布尔插件系统变量在未签名的机器上表现不佳char;一些代码试图为这些分配一个负值。(缺陷 #59905,缺陷 #11864205)

  • big_tables启用后,在非重复键上使用具有常量相等条件的简单连接的查询 返回COUNT(DISTINCT)不正确的结果。(错误#52582,错误#11760197)

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