Documentation Home
MySQL 5.7 发行说明  /  MySQL 5.7.7 的变化(2015-04-08,发布候选)

MySQL 5.7.7 的变化(2015-04-08,发布候选)

编译笔记

  • 已完成清理源代码库的工作,包括: 删除不需要的CMake检查;从源文件中删除未使用的宏;重组头文件以减少依赖项的数量并使它们更加模块化,删除没有定义的函数声明,用行业标准库中的等效函数替换本地编写的函数。

弃用和移除说明

  • 在 MySQL 5.7.6 中,该PASSWORD() 函数已被弃用,但调用时没有产生警告。同样, old_passwords系统变量已被弃用,但在设置时没有产生警告。(缺陷号 20545464)

  • 弃用的IDENTIFIED BY PASSWORD语法仅支持CREATE USER and GRANT,但 ALTER USER未能拒绝它。 ALTER USER现在产生语法错误。(错误#76048,错误#20600865)

  • SET PASSWORD ... = PASSWORD('auth_string') 语法在 MySQL 5.7.6 中被弃用,但被定为非法。此语法现在再次可用,但由于其已弃用状态而生成警告。这些替代方案仍然可用,其中第一个现在应被视为首选形式:

    ALTER USER ... IDENTIFIED BY 'auth_string';
    SET PASSWORD ... = 'auth_string';

    (错误#75927,错误#20552143)

  • 在 MySQL 5.7.6 中, NO_AUTO_CREATE_USER已弃用。(最好使用 CREATE USER而不是 创建 MySQL 帐户GRANT。)现在默认的 SQL 模式包括NO_AUTO_CREATE_USER 和分配给sql_mode 更改 NO_AUTO_CREATE_USER模式状态的分配会产生警告,但设置 sql_mode为 的分配除外DEFAULTNO_AUTO_CREATE_USER将在未来的 MySQL 版本中删除,届时将始终启用其效果(GRANT不会创建帐户)。

安装注意事项

  • 更多二进制分发类型的安装程序提供安全部署。这包括 SLES、Solaris、OS X、FreeBSD 和 Linux 通用二进制压缩 tar发行版的安装程序。'root'@'localhost'这些安装程序创建没有其他或匿名用户帐户的单个帐户root,并且不创建test任何用户都可以访问的数据库。(一些安装程序可能会提供创建其他帐户或测试数据库的选项,但前提是用户选择了该选项。)交互式运行的安装程序可以要求安装用户提供初始root密码。非交互式安装程序随机生成 root管理员可用于首次连接到服务器并选择新密码的密码。

优化器注释

  • 现在可以在单独的 SQL 语句中向优化器提供提示,这样可以比使用 optimizer_switch系统变量更好地控制语句执行计划。优化器提示被指定为语句或查询块的, , , , 或 关键字/*+ ... */之后的注释 。与 一起使用的语句中也允许使用提示 ,使您能够了解提示如何影响执行计划。例子: SELECTINSERTREPLACEUPDATEDELETEEXPLAIN

    SELECT /*+ NO_RANGE_OPTIMIZATION(t3 PRIMARY, f2_idx) */ f1
      FROM t3 WHERE f1 > 30 AND f1 < 33;
    SELECT /*+ BKA(t1) NO_BKA(t2) */ * FROM t1 INNER JOIN t2 WHERE ...;
    SELECT /*+ NO_ICP(t1, t2) */ * FROM t1 INNER JOIN t2 WHERE ...;
    EXPLAIN SELECT /*+ NO_ICP(t1) */ * FROM t1 WHERE ...;

    有关详细信息,请参阅优化器提示

包装说明

  • 一些二进制分发类型已经变得更加模块化,以将测试组件拆分到一个单独的分发文件中。这减少了主要下载的大小。除了先前可用于 Windows Zip 存档、RPM 包和 Debian 包的测试/调试分发版之外,当前版本还为 Solaris PKG 文件以及通用二进制 Linux 和 OS X 压缩 的tar包提供了单独的测试分发版。这些单独的发行版在发行版文件名中 有test ” 。

    通常,使用测试发行版需要同时安装主发行版。此外,对于 Solaris,主发行版和测试发行版必须用于相同版本的 MySQL。

    参考资料:另请参阅:Bug #20613327、Bug #20546298。

性能模式注释

  • 和消费者events_statements_history现在 events_transactions_history默认启用。

    参考资料:另请参阅:Bug #71207、Bug #18376132。

安全说明

  • 以前,代理用户映射仅适用于为自己实现该功能的身份验证插件。MySQL 服务器本身现在可以根据授予的代理权限映射代理用户。如果 check_proxy_users启用了新的系统变量,服务器会为任何请求它的身份验证插件执行代理用户映射。默认情况下, check_proxy_users禁用,因此服务器不执行代理用户映射,即使对于请求它的身份验证插件也是如此。

    此外,修改了mysql_native_password内置 sha256_password身份验证插件以利用此服务器功能,因此现在能够支持代理用户。new mysql_native_password_proxy_userssha256_password_proxy_users 系统变量控制每个插件是否请求代理用户映射。默认情况下,这两个变量都被禁用,这会产生与以前版本向后兼容的行为。

    有关用户代理的信息,请参阅 代理用户

  • 如果服务器支持加密连接,C 客户端库现在默认尝试建立加密连接。这会影响客户端程序,如下所示:

    • 在没有--ssl 选项的情况下,客户端会尝试使用加密进行连接,如果无法建立加密连接,则会回退到未加密的连接。

    • 显式 --ssl选项或同义词 ( --ssl=1, --enable-ssl) 的存在是规定性的:客户端需要加密连接,如果无法建立则失败。

    • 通过--ssl=0选项或同义词 ( --skip-ssl, --disable-ssl),客户端使用未加密的连接。

    有关详细信息,请参阅 加密连接的命令选项

    此更改会影响这些标准的 MySQL 客户端程序: mysqlmysql_config_editormysql_install_dbmysql_pluginmysql_secure_installationmysql_upgrademysqladminmysqlbinlogmysqlcheckmysqldumpmysqlimportmysqlshowmysqlslap。它还将影响基于 C 客户端库的 MySQL 连接器的新版本:Connector/C、Connector/C++ 和 Connector/ODBC。

空间数据支持

sys架构注释

  • MySQL 发行版现在包含 sys架构,一组对象可帮助 DBA 和开发人员解释性能架构收集的数据。sys模式对象可用于典型的调优和诊断用例。

    对于新安装,如果您将mysqld与 或 选项一起使用,或者如果您使用mysql_install_dbsys , 则在数据目录初始化期间默认安装架构。为了允许抑制这种行为,mysql_install_db 现在有一个 选项。mysqld没有这样的选项,但是如果您使用mysqld --initialize(或 )而不是mysql_install_db初始化数据目录,则可以在不需要时在初始化后手动 删除 模式。--initialize--initialize-insecure--skip-sys-schema--initialize-insecuresys

    对于升级,如果未安装模式, mysql_upgrade将安装 sys模式,否则将其升级到当前版本。为了允许抑制这种行为,mysql_upgrade现在有一个--skip-sys-schema 选项。

    sys如果模式存在但没有 视图,则mysql_upgrade返回错误 version,假设没有此视图表示用户创建的 sys模式。要在这种情况下升级,请先删除或重命名现有sys架构。

    如果从早期版本升级到此 MySQL 版本,则必须运行mysql_upgrade来安装 sys模式。

    有关详细信息,请参阅MySQL 系统架构

添加或更改的功能

  • 重要变更;InnoDB:InnoDB对 配置选项默认值 进行了以下更改

    上述配置参数默认更改可能会影响复制和mysqldump操作。使用新的默认设置时请考虑以下建议:

    • 将mysqldump数据从较旧的 MySQL 版本 复制或 重放到 MySQL 5.7.7 或更高版本时,请考虑设置 innodb_strict_modeOFF以避免错误。目标设置不应比源设置更严格。

    • 从 MySQL 5.7.7 或更高版本复制到较旧的从属服务器时,请考虑在从属服务器上设置 innodb_file_format=Barracudainnodb_large_prefix=ON,以便目标和源具有相同的设置。

    以下与文件格式相关的配置选项已弃用,并将在未来的 MySQL 版本中删除:

    InnoDB这四个配置选项是为了创建与MySQL 5.1 早期版本兼容的表而提供的 。现在 MySQL 5.1 已经到达其产品生命周期的末尾,不再需要这些选项。此外,文件格式方案在引入文件格式后不再使用,在添加新功能时将通过该方案引入命名文件Barracuda 格式。InnoDB自引入Barracuda文件格式以来,格式已更改,但尚未添加新命名的文件格式。

    如果非默认值用于四个已弃用选项中的任何一个,则将InnoDB弃用和删除警告打印到服务器错误日志中。如果使用SET语句动态设置参数,则会向客户端发出相同的警告。

  • 重要变更;InnoDB: 现在 默认启用innodb_buffer_pool_dump_at_shutdowninnodb_buffer_pool_load_at_startup通过此更改,一定百分比的最近使用的缓冲池页面将在服务器关闭时转储并在服务器启动时恢复。此行为有助于避免在重新启动服务器后出现冗长的缓冲池预热期,特别是对于具有大型缓冲池的实例。该 innodb_buffer_pool_dump_pct 选项定义了被转储的缓冲池页面的百分比。的默认值 innodb_buffer_pool_dump_pct从 100 减少到 25。

    这些配置选项默认值更改表示服务器关闭和启动时的行为更改。如果您更喜欢以前的默认值,建议您在升级到 MySQL 5.7.7 或更高版本后、重新启动服务器之前在 MySQL 配置文件中显式配置选项。

    有关详细信息,请参阅 保存和恢复缓冲池状态

  • 重要变更;InnoDB: 默认innodb_checksum_algorithm 值为 nowcrc32。以前的默认设置是innodb。此更改还意味着innodb_checksums=ON 现在等效于 innodb_checksum_algorithm=crc32 而不是 innodb_checksum_algorithm=innodb.

  • InnoDB: MeCabInnoDB全文解析器插件现在支持eucjpmscp932utf8mb4 字符集。(缺陷号 20534096)

  • InnoDB: 为了解决某些 LOCK_grant在读取模式下锁定的 LOCK_grant现在对锁进行了分区。读取锁定请求LOCK_grant现在获取多个LOCK_grant分区之一。写锁必须获取所有分区。

    为了解决另一个可伸缩性瓶颈,服务器在创建内部临时表时不再执行不必要的锁获取。

    参考资料:另请参阅:Bug #72829、Bug #20023139。

  • 复制: 一些复制相关变量的默认值已被修改。进行了以下更改:

    此外,会话范围 gtid_executed已被弃用。的全球范围 gtid_executed仍然受到支持。

  • 复制: MySQL 中的 XA 实现与 XA 规范更加兼容。准备好的 XA 事务不再在断开连接时回滚。现在,当使用二进制日志进行复制时,处于 PREPARED状态的 XA 事务会一直保存在二进制日志中,直到发出显式XA COMMITXA ROLLBACK语句。在以前的版本中,处于PREPARED状态的 XA 事务将在服务器干净关闭或客户端断开连接时回滚。同样,处于 PREPARED状态的 XA 事务仍将存在于 PREPARED状态以防服务器异常关闭然后再次启动,但事务内容无法写入二进制日志。作为此功能的一部分, XA_prepare_log_event添加了一个新事件,以跟踪PREPARED状态中的 XA 事务并使它们能够被复制。为了完成一个两阶段的 XA 事务,XA COMMIT或被XA ROLLBACK单独记录在二进制日志中,可能与其他事务交错。XA COMMIT ONE PHASE 使用新语法 提交的 XA 事务使用XA_prepare_log_event.

    参考资料:另请参阅:Bug #12161、Bug #11745231、Bug #75204、Bug #20214365。

  • 提供语句进度信息的 Performance Schema 阶段事件工具现在默认启用和计时。受影响的仪器是此语句显示的仪器:

    SELECT * FROM performance_schema.setup_instruments WHERE
    ENABLED='YES' AND NAME LIKE "stage/%";

    (缺陷号 20685859)

  • Performance Schema 事务表的XID列(例如, events_transactions_current)已拆分为三列,以允许访问 XID 值的组成部分。新列是 XID_FORMAT_IDXID_GTRIDXID_BQUAL。(漏洞 #18320361)

  • 以前,不允许视图定义在FROM 子句中包含派生表(子查询)。这一限制现已解除。

    以前,子句中的派生表(子查询)或视图 FROM如果在列表中包含子查询,则无法合并到外部查询 SELECT中。相反,它们是使用物化进行处理的。现在取消了此限制,以便可以使用合并更快地执行以前使用物化执行的查询。(错误#12755、错误#11745276、错误#60417、错误#11865600)

修正错误

  • InnoDB: FLUSH TABLES ... FOR EXPORT , which is an unsupported operation for tables resided in a general tablespace, failed to report a warning message. (缺陷号 20631305)

  • InnoDB: MeCab 解析器访问了超出文档长度的字节,导致大小为 1 的无效读取Valgrind 错误。文档分配大小现在是长度 + 1 个字节。(缺陷号 20589432)

  • InnoDB: 不应为静态互斥体引发调试断言。(缺陷号 20588765)

  • InnoDB: 启动期间对内部系统表的表空间和文件路径数据更新导致撤消日志损坏。更新是在调用 之前进行的truncate::fixup_tables(),预计不会遇到更改的页面。(缺陷号 20534616)

  • InnoDB:对临时表 的TRUNCATE TABLE操作引发了断言。从 重新加载时,临时表对象未完全构建 SYS_TABLES。(缺陷 #20527363,缺陷 #72080)

  • InnoDB: Return value 16 when calling pthread_mutex_destroy() warnings were returned duringatexit()processing. (缺陷号 20513522)

  • InnoDB: 用于修改表空间第一页的调试变量在设置为不存在的表空间 ID 时引发断言。(错误#20511314、错误#75833、错误#19865274、错误#74481)

  • InnoDB: 缓冲池加载操作在尝试读取由先前TRUNCATE TABLE 操作放置在表空间边界之外的页面时引发断言。(缺陷号 20474542)

  • InnoDB: 在错误处理期间从数据字典缓存中删除外键对象导致服务器退出。(缺陷号 20442523)

  • InnoDB: 在恢复期间遇到的文件大小不匹配触发的重做日志调整大小操作期间引发断言。MySQL 5.6.8 中引入的自动处理重做日志文件大小不匹配的代码无法确保在重新创建重做日志文件之前缓冲池是干净的。(缺陷号 20425387)

  • InnoDB: 一个InnoDB memcached extra_col_value[]数组在没有检查分配标志的情况下被释放,导致服务器退出。(缺陷号 20400373)

  • InnoDB: 在刷新操作正在进行时执行的 DML 操作引发了与 memcached 相关的断言。(缺陷号 20390277)

  • InnoDB:CHECK TABLE对具有空间索引的表 的该 row_sel_sec_rec_is_for_clust_rec函数无法处理外部存储的字段。(缺陷号 20311344)

  • InnoDB: 在“按键分区CHECK TABLE进行就地ALTER TABLE操作对于按键分区的表,不应允许删除和添加主键的就地操作。(缺陷号 20190520)

  • InnoDB: 对于结果排序算法中合并块的大小的估计太低导致服务器退出。(缺陷号 20049521)

  • InnoDB: 一个ALTER TABLE ... RENAME操作引发了一个无效的断言。断言代码使用了不正确的事务对象。(漏洞 #18523599)

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

  • InnoDB:INNODB_SYS_DATAFILES系统表空间和 撤消表空间从 INNODB_SYS_TABLESPACES输出中丢失。(漏洞 #16904899,漏洞 #69323)

  • InnoDB:二进制升级到 MySQL 5.7.6 后 运行mysql_upgrade导致系统上的服务器退出,该系统具有在 MySQL 5.1 或更早版本中创建的表空间数据文件。MySQL 5.7.6 中 Bug #17345513 的修复未能解决FIL_PAGE_TYPE在 MySQL 5.1 或更早版本中创建的表空间数据文件中垃圾值的所有实例。

    FIL_PAGE_TYPE 使用此补丁,不再需要 MySQL 5.7.6 发行说明条目中针对 Bug #17345513 描述的用于修复包含无效值的非索引页面的手动过程。

    Bug #17345513 的补丁在重置无效 FIL_PAGE_TYPE值后也无法重新计算页面校验和。重新启动服务器后,由于明显的页面损坏会发生故障。FIL_PAGE_TYPE在将新值写入数据文件之前,现在会重新计算页面校验和 。(错误#76262,错误#20691930)

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

  • InnoDB: 对于全文搜索,优化器可能会选择一个不会产生正确相关性排名的索引。(错误#74686,错误#19950568)

  • 分区: MySQL 服务器在打开分区表时不必要地请求表的默认分区数。这是不必要的,因为服务器已经有了关于要打开的表的信息。现在,服务器仅在需要时才请求此信息——也就是说,仅当它正在创建或更改分区表时才请求。(错误#76007,错误#20585753)

  • 分区:ALTER TABLE 当写锁对该表有效时, 许多试图向分区表添加分区、列或索引的(错误#74451、错误#74478、错误#74491、错误#74560、错误#74746、错误#74841、错误#74860、错误#74869、错误#19856162、错误#19864284、错误#19873019、错误#19891663、错误#19990815,错误#20026661,错误#20031966,错误#20033503,错误#19827845)

  • 分区:ALTER TABLE在写锁生效的分区表上 执行 an(错误#74288、错误#74634、错误#19784790、错误#19918805)

    参考资料:另请参阅:Bug #19856162、Bug #74451。

  • 复制: 对性能模式表执行的一些内存复制操作 replication_connection_status 使用了不正确的长度,这可能导致缓冲区溢出错误或截断输出。此修复可确保使用正确的长度。(缺陷号 20535692)

  • Replication: 在多线程slave上使用多源复制时(这里slave_parallel_workers 大于1), slave_transaction_retries大于1,slave将无法打开relay log文件。这是由于 slave worker 错误地为其复制通道构建了中继日志文件路径。(缺陷号 20448413)

  • 复制: 设置 automatic_sp_privileges 变量后,服务器会自动向存储例程的创建者授予 EXECUTEALTER ROUTINE权限(如果用户还没有这些权限)。当特权用户以非特权用户身份在 master 上创建过程时DEFINER,当前用户将被视为特权用户,并且mysql.procs_priv不会更新表。当这样的语句被复制到 slave 时,非特权DEFINER被认为是从站上的当前用户,并且正在分配特权。这导致分配给主服务器和从服务器的特权不同。该修复程序确保将存储例程的创建者添加到二进制日志中,并且从属现在在授予权限之前首先检查用户是否存在。为了保持与以前版本的兼容性,在不可DEFINER用时 使用。INVOKER作为此修复的一部分,匿名用户可用于从主服务器复制到从服务器。(缺陷号 20049894)

  • 复制: 如果复制从站上的 I/O 线程在初始化阶段失败,则它Last_IO_Error在发出后不会在现场 SHOW SLAVE STATUS。该修复可确保在 Last_IO_Error现场正确报告此类错误。(漏洞#18909984)

  • 复制: 发出后RESET SLAVERECEIVED_TRANSACTION_SET中的字段 performance_schema.replication_connection_status 显示不正确的值。这可能会导致不正确的字符串值错误。(错误#18751585,错误#19840342)

  • 复制:gtid_mode=ONslave_net_timeout设置为低值时,从 I/O 线程可能会挂起。这是因为当转储线程发现许多可以跳过的事件时,从属心跳没有足够定期地发送。该修复可确保在这种情况下正确发送心跳。(错误#74607,错误#19975697)

  • CMake未能正确检测最新版本的 OpenSSL 的 OpenSSL 版本(版本字符串的格式已更改)。(缺陷号 20756770)

  • GRANT并且 ALTER USER可以清除与重置密码无关的操作的密码过期标志。(缺陷号 20634154)

  • 对于从 MySQL 5.6 到 5.7 的升级,涉及将 mysql.user表密码从 Password列移动到 authentication_string列, mysql_upgrade忽略了处理具有空plugin值和 pre-4.1 密码哈希的行。(缺陷号 20614545)

  • 对于表修改语句,解析器可以在不检查内存不足情况或空指针的情况下取消引用解析树。(缺陷号 20607407)

  • mysql_stmt_prepare()可能会泄漏分配给元数据的内存。(缺陷号 20598261)

  • Debian 软件包缺少一些依赖项。(缺陷号 20561621)

  • 服务器退出可能是由包含 HAVING子句的查询引起的,该子句本身包含 IN()子查询谓词,其中子查询引用查询的列。(缺陷号 20558891)

  • 如果使用明文身份验证插件的客户端尝试使用空密码进行连接,则服务器可能会退出。(缺陷号 20537246)

  • 查询缓存失效函数使用了太小的缓冲区来保存编码的数据库名称,这可能会导致服务器退出。(缺陷号 20528928)

  • Valgrind 警告被静音以显示与 GTID 相关的调试信息。(缺陷号 20506672)

  • 某些在子句中具有派生表(子查询)的查询 FROM可能会引发断言。(缺陷号 20487336)

  • 表修改失败后的表修改语句可能会导致服务器退出。(缺陷号 20460208)

  • ENUM对包含或 SET值的 视图的联合查询 未正确处理。(缺陷号 20456178)

  • 派生表和常规表之间的自然左连接与另一个自然左连接连接到另一个常规表可能会导致服务器退出。(缺陷号 20455184)

  • 优化器可能会尝试在内部临时表上创建错误数据类型的索引。(缺陷号 20454833)

  • UPDATE其中指定表之一是派生表 的多表语句可能会导致服务器退出。(缺陷号 20454533)

  • 对内部 SRID 值的错误处理 ST_GeomFromGeoJSON()可能导致引发断言。(缺陷号 20416705)

  • 在某些条件下,LCASE()DECODE()ENCODE() 可能在内存复制操作中具有源和目标重叠。(错误#20315088、错误#75931、错误#20554017)

  • ST_Distance()可能会在 32 位平台上返回不正确的结果。(缺陷号 20259578)

  • 如果一个视图是使用 MERGE 算法处理的,并且有一个 ORDER BY 子句,如果在 启用 SQL 模式的情况下查询该视图,就会出错,除非该查询选择了所有视图列GROUP BYONLY_FULL_GROUP_BY(缺陷号 20210742)

  • 对于调试版本,优化器可以拒绝使用 LooseScan 进行eq_ref访问连接并提出断言。优化器现在允许这种组合用于查询执行。(缺陷号 20119743)

  • 子查询中的超出范围的错误可能会引发断言。(缺陷号 20035071)

  • 重命名mysql.procs_priv表并执行SHOW GRANTS导致服务器退出。(缺陷号 20006361)

  • 按结果排序GROUP_CONCAT() 可能会导致服务器退出。(错误#19880368,错误#20730220)

  • 由于在包含外部引用的子查询中使用全文谓词进行不适当的全文查找,服务器可能会退出。(漏洞 #19828320)

  • 对于具有ORDER BY 通过列号 GROUP_CONCAT()引用具有外部引用的表达式的准备好的语句,重复执行语句可能会导致服务器退出。(漏洞 #19814337)

  • 对于与半连接一起使用的物化内部临时表,优化器可以向其添加索引,但随后使用不适当的查找策略,导致服务器退出。(错误#19695490,错误#21782943)

  • 由于错误地将不正确的字段与临时表相关联,优化器可能会引发断言。(错误#19612819,错误#20730129)

  • 在服务器启动时指定--general_log_file= (使用空值)导致服务器失败并退出。(漏洞 #19392264)

  • ORDER BY对多表中使用的派生表或视图的 不当传播UPDATE可能会引发断言。(漏洞 #18439019)

  • 中定义的thd_proc_info()函数 plugin.h并没有实际实现。这已更改为set_thd_proc_info()。(漏洞 #11844974)

  • MultiLineString对于调试版本,在计算 a和 a 之间的对称差异时会引发断言 MultiPoint。(错误#77580,错误#21355906)

  • MySQL 5.7.6 中引入的查询重写框架产生了过多的互斥量获取,在某些情况下会导致性能下降。(错误#76509,错误#20785598)

  • mysql_install_db以引导模式启动 mysqld,但未能等待它完成,导致过早关闭并需要崩溃恢复。(错误#76344,错误#20728488)

  • SHOW CREATE USER不适用于 MySQL 5.7 之前的客户端。(错误#76093,错误#20627890)

  • 不适当-Werror的选项可能出现在 mysql_config --cflags输出中。(错误#76019,错误#20590904)

  • 作为InnoDB默认的临时表存储引擎,InnoDB有时会对临时表的键部分长度做出错误的假设。(错误#76016,错误#20590162)

  • global_variables Performance Schema 表中进行选择会导致有关sql_log_bin系统变量的虚假警告。(错误#75980,错误#20575529)

  • 对于嵌入式服务器,没有为包含子句SHOW VARIABLES的 语句生成适当的弃用警告。(错误#75951,错误#20559828)SHOW STATUSWHERE

  • 包含用户定义变量的子查询可能会引发断言。(错误#75934,错误#20554585)

  • AddressSanitizer 编译错误已消除。(错误#75739、错误#20459338、错误#75740、错误#20459363)

  • 对一些代码问题进行了更正,这些问题导致编译器警告数组边界、可能未初始化的变量以及设置但未使用的变量。(错误#75735,错误#20458574)

  • 使用该选项调用时, mysql客户端可能会过早退出。--quick(错误#74182,错误#19723750)

  • CHECK TABLE ... FOR UPGRADE没有报告使用旧日期时间格式的时间列(从 MySQL 5.6.4 之前开始)。因此, mysql_upgrade不知道发出 REPAIR TABLE语句来重建包含此类列的表,并且 ALTER TABLE如果表已修复,后续语句将无法在可能的范围内执行快速更改。现在,如果 avoid_temporal_upgrade系统变量被禁用,则CHECK TABLE 报告旧的时间列并将REPAIR TABLE表从旧的时间格式升级到新格式。(错误#73008,错误#18985579)

  • 启用系统变量后,由于竞争条件offline_mode,服务器有时无法接受来自具有特权的用户的连接 。SUPER(错误#72760,错误#18842228)

  • 写入慢查询日志的语句的信息始终 HANDLER ... READ具有 0 值。(错误 #71892,错误 #18335504)rows_sentrows_examined

  • mysql_real_connect()如果服务器没有运行,可以关闭一个文件描述符两次。(漏洞 #69423,漏洞 #19226740)

  • 优化器使用的一些关键描述符未初始化。感谢 Sergei Glushchenko 提供的补丁。(缺陷 #68713,缺陷 #16512701)

  • EXPLAINfiltered可能会为包含 LIMIT子句的查询显示不正确 的值。(错误#34124,错误#11747810)