Documentation Home
MySQL 5.7 发行说明  /  MySQL 5.7.18 的变化(2017-04-10,正式发布)

MySQL 5.7.18 的变化(2017-04-10,正式发布)

编译笔记

  • Windows 构建现在使用默认运行时库(构建使用/MD标志)。(漏洞#25611609)

  • CMake添加了对使用 Developer Studio 12.6 进行编译的支持。(缺陷号 25384295)

配置注意事项

  • 如果同时给出了-DENABLE_DEBUG_SYNC=OFFAND ,则 MySQL 无法编译 。-DWITH_DEBUG=ONENABLE_DEBUG_SYNC选项已被删除并启用WITH_DEBUG调试同步。(漏洞 #18374703)

弃用和移除说明

  • PROCEDURE ANALYSE()语法现已弃用,并在 MySQL 8.0 中删除。

  • 服务器选项已弃用,将--temp-pool在 MySQL 8.0 中删除。

  • replace实用程序已弃用,将在 MySQL 8.0 中删除 。如果您希望继续使用此实用程序,请务必保留已安装 MySQL 版本的副本。

  • 在 SQL 语句中 使用\Nas 的同义词 已弃用,并在 MySQL 8.0 中删除。NULL改用NULL

    此更改不会影响使用 或 执行的文本文件导入或导出操作LOAD DATASELECT ... INTO OUTFILE因为它们NULL继续由 表示\N。参见 LOAD DATA 语句

  • 对 DTrace 的支持已弃用,并在 MySQL 8.0 中删除。

钥匙圈笔记

  • keyring_okv插件不再支持 RSA 或 DSA 密钥类型。(缺陷号 25540639)

  • 密钥环keyring_okv插件现在可以使用 SafeNet KeySecure Appliance 作为密钥环存储的 KMIP 后端。有关说明,请参阅 使用 keyring_okv KMIP 插件

包装说明

  • Microsoft Windows: 提醒: MySQL 5.7 需要 Microsoft Visual C++ 2013 Redistributable Package 才能在 Windows 平台上运行。用户在启动服务器之前应确保该软件包已经安装在系统上。该包可从 Microsoft 下载中心获得。

  • RPM 包结构的更改需要删除更多的包才能干净地安装 MySQL 服务器。(漏洞 #25603087)

  • 为了避免潜在的竞争条件,Debian 软件包现在使用 GNU安装实用程序,而不是mkdirtouchchown的组合。(缺陷号 25258829)

  • my-default.cnf.sh文件(用于生成默认值my-default.cnfmy-default.ini文件)不再包含在源代码分发中my-default.cnfmy-default.ini也不再包含在分发包中或由分发包安装。(缺陷号 22525354)

安全说明

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

    此更改不影响 Oracle 生成的 MySQL Community 构建的 MySQL Server,它使用 yaSSL 库。(错误#25768671,错误#25615451)

线程池注释

  • 为了提高thread_pool插件性能,连接身份验证和初始化已从接受器线程移动到处理客户端连接的线程池工作线程。这使接受器线程能够以更高的速率处理新连接,同时减少延迟。该INFORMATION_SCHEMA TP_THREAD_GROUP_STATE表现在包含一个CONNECT_THREAD_COUNT列,指示正在处理或等待处理连接初始化和身份验证的线程数。每个线程组最多可以有四个连接线程;这些线程在一段时间不活动后过期。(漏洞 #17159742)

X 插件说明

  • MYSQLX_TCP_PORT CMake选项被忽略 。(漏洞 #25493867,漏洞 #84804)

  • protobuf 编译器 为 mysqlx.proto发出了未使用的导入”警告。(错误#25444009,错误#84641)

  • 验证发生时未初始化的连接已释放。(缺陷号 25392280)

  • Mysqlx_notice_warning_sent 状态Mysqlx_notice_other_sent 变量值没有按预期递增。(错误#25289949、错误#84258、错误#25290001、错误#84260)

  • 宏的手动定义 MYSQL_DYNAMIC_PLUGIN是多余的。(漏洞 #25162590,漏洞 #83988)

  • IPv6 连接支持定义了一个 mysqlx_bind_address默认值为“0.0.0.0”的新系统变量,但默认值应该是“*”,以便可以使用 IPv6 地址、IPv4 地址或主机名连接到 X 插件. (漏洞 #25047909,漏洞 #83688)

  • 在身份验证之前发送Expect.Open到已连接的套接字会导致以下错误消息:

    ... Plugin mysqlx reported: '10: Invalid message 24 received during client initialization'
    ... Plugin mysqlx reported: '10: ERROR reading from socket Bad file descriptor (9) 2'

    (错误#24940144,错误#83494)

  • 在 Linux 上,如果集合名称中的字母大小写不统一,则 JavaScript 和 Python 交互模式中的 MySQL Shell 会隐藏集合。(漏洞 #24848125)

  • 如果存在多个与身份验证用户匹配的用户帐户,X 插件将尝试对所有匹配的帐户而不是最匹配的帐户进行身份验证。(漏洞 #24847537)

添加或更改的功能

  • 复制: 现在可以将组复制组中的视图更改事件复制到类型为 的外部多线程从属 (MTS) DATABASE。(漏洞 #25170698,漏洞 #84008)

  • 复制: 当向 提供负超时参数或小数超时参数时 WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS(),服务器会以意想不到的方式运行。有了这个修复:

    • 小数超时值按原样读取,没有舍入。

    • 如果服务器处于严格 SQL 模式,则负超时值将被拒绝并报错;如果服务器不在严格的 SQL 模式下,该值使函数立即返回 NULL,无需等待,然后发出警告。

    (错误#24976304,错误#83537)

  • -Wno-error如果 MySQL 配置为使用该选项 构建 , mysql_config会为其--cflags选项生成不正确的输出。

    mysql_configpkg-config现在生成 的编译器选项集由白名单而不是黑名单决定。(错误#25040566、错误#22898475、错误#80662)

  • UTF-8 二进制排序规则的性能得到改进。(错误#24788778、错误#83247、错误#25076862)

  • Debian/Ubuntu 打包维护脚本的一致性和可维护性得到改进。(漏洞#23588977)

  • mysql_secure_installation对其认为有效的是和否响应更加严格。(缺陷 #13344753,缺陷 #62925)

修正错误

  • InnoDB: 删除了要求第一个撤消表空间使用空间 ID 1 的限制。现在可以为第一个撤消表空间分配一个空间 ID,而不是 1。撤消表空间的空间 ID 值仍然按连续顺序分配。(漏洞 #25551311)

  • InnoDB: 操作DROP TABLEinnodb_force_recovery设置为 5 或 6设置DROP TABLE不再允许 innodb_force_recovery(漏洞 #25385590)

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

  • InnoDB: 在没有 Performance Schema 的情况下编译服务器导致构建失败。(缺陷号 25348787)

  • InnoDB: 在预读期间,使用了错误的页面大小来计算表空间大小。(缺陷号 25330449)

  • InnoDB: 在 Fedora 25 上编译使用 DWITH_LZ4=system导致构建失败,因为 LZ4_COMPRESS_LIMITEDOUTPUT函数已弃用。(缺陷号 25297593)

  • InnoDB:UNIV_PFS_MUTEX禁用、 UNIV_PFS_RWLOCK和 等宏UNIV_PFS_THREAD导致编译错误。(漏洞 #25251082)

  • InnoDB: 虚拟索引中的 NULL 虚拟列字段名导致服务器在填充受外键约束影响的虚拟列时发生的字段名比较期间退出。(缺陷号 25222337)

  • InnoDB:InnoDB文件 I/O 性能模式检测 的文件句柄类型名称os_pfs_file_tpfs_os_file_t. (漏洞 #25220118)

  • InnoDB: 在范围比较中,传递了二级索引字段号而不是聚集索引字段号,最终导致检索到错误的字段。(漏洞 #25175249)

  • InnoDB: 服务器在重启时退出是由于 结构my_thread_init()my_thread_exit()函数st_my_thread_var(缺陷号 25167032)

  • InnoDB:具有非默认读取批量大小配置 的memcached读取操作导致服务器退出。(缺陷号 25147515)

  • InnoDB:READ COMMITTED在使用隔离级别 时,在外键验证期间不必要地采用了间隙锁(漏洞 #25082593)

  • InnoDB:TRUNCATE TABLE对带有索引的表进行操作 后FULLTEXT,空间大小计算错误导致读取无效。(漏洞 #25053705)

  • InnoDB: 在检查点期间,所有MLOG_FILE_NAME重做日志记录都写入单个小事务 (mtr),导致日志解析缓冲区溢出。(缺陷 #24793413,缺陷 #83245)

  • InnoDB: 添加了一种机制来调试构建,以确保 InnoDB性能模式检测的密钥已在性能模式中注册。如果性能模式密钥的数量与已注册的性能模式密钥的数量不匹配,该机制会导致启动在调试版本上失败。(漏洞#24686908)

  • InnoDB: 更新表统计信息时的竞争条件可能导致估计行数为 1 和不正确的查询执行计划。(错误#24666839,错误#82968)

  • InnoDB: 与表统计相关的代码中的错误在dict0stats.cc源文件中引发了断言。(漏洞#24585978)

  • InnoDB:重建表 的就地操作期间的并发 DML 操作 ALTER TABLE未更新虚拟索引,导致虚拟索引和聚集索引之间不匹配。(漏洞 #23219499)

  • InnoDB: 一个TRUNCATE TABLE操作dict_sys在扫描缓冲池中的页面并从中删除页面时持有互斥锁,导致并发 DDL 操作停止。互斥量现在在扫描期间释放,并在扫描完成时再次获取。(漏洞 #23070734,漏洞 #80060)

  • InnoDB: SELECT COUNT(*)由于 MySQL 5.7.2 中引入的修改导致InnoDB通过遍历聚集索引而不是较小的二级索引来计算行数,因此在某些情况下性能会下降。修改被恢复。(漏洞 #23046302,漏洞 #80580)

  • InnoDB: 由于在存储 B 树游标时遇到缺少页码字段,将 GIS 数据插入 R 树引发了断言。(缺陷 #23044098,缺陷 #80939)

  • InnoDB:InnoDB 在 Windows 上禁用了文件 I/O 的 性能模式检测(漏洞 #14025581)

  • InnoDB:row_search_mvcc()函数不必要地遍历整个表进行范围查询,这发生在记录不在事务读取视图中时。(错误#84202、错误#23481444、错误#25251375)

  • 分区: 更新在生成列上具有分区的表的一行可能会引发调试构建的断言失败,并在非调试构建中返回不正确的结果。(漏洞 #22574695,漏洞 #80080)

  • 复制: 如果错误状态是由于 ER3092 导致的,则MEMBER_STATE组复制成员的复制没有从ERROROFFLINE执行STOP GROUP_REPLICATION(漏洞#25674926)

  • 复制: 启用流量控制后,达到最小流量控制配额 1 会导致组复制在限制原因不再有效时不停止限制。(漏洞#25461354)

  • 复制: 使用无法解析的主机名 group_replication_group_seeds 导致START GROUP_REPLICATION失败。该修复程序可确保 group_replication_group_seeds 在启动组复制时验证主机名,并且该列表必须至少包含一个有效地址。无效地址将被忽略。(错误#25460324,错误#84674)

  • 复制:卸载插件时,组复制插件安装创建 的_gr_user帐户未可靠删除。(缺陷号 25298987)

  • 复制: 在离线节点上启动组复制时,该节点可以配置为复制,但无法恢复。(缺陷号 25256910)

  • 复制: 使用多线程从站时,应用程序错误显示的工作人员 ID 数据与性能模式复制表中外部化的数据不一致。(漏洞 #25231367)

  • 复制: 并非所有组复制 GCS 调试和跟踪消息都在调试模式下启用。(漏洞 #25209109,漏洞 #84079)

  • 复制: 编译 MySQL 5.7.17 失败,出现可变长度数组错误。(错误#25163241,错误#83994)

  • 复制: 在基于行的复制中,当从具有 utf8mb3列的表复制到具有相同定义的表(其中该列是使用 utf8mb4字符集定义的)时,会返回错误显示字段长度的消息。(漏洞 #25135304,漏洞 #83918)

  • 复制: 当组内的成员处于非活动状态时,组复制 GCS 不会丢弃消息。(缺陷号 25134074)

  • Replication: Group Replication 插件在Windows 平台上编译时给出了一些不必要的警告。(缺陷号 25119288)

  • 复制: 如果 Group Replication 插件在不再可能时尝试联系服务器,则可能会引发断言。(漏洞 #25071492)

  • 复制: 静默跳过先前执行的 GTID 事务的 GTID 事务跳过机制不适用于 XA 事务。(漏洞 #25041920)

  • 复制: 在组复制应用程序 SQL 线程上执行重启后,插件无法再检测到线程故障。(漏洞 #24969065)

  • 复制: 当 MTS 从属应用程序由于(注入的)错误而停止时,它没有报告任何对故障排除有用的信息。(漏洞#24822686)

  • 复制: FLUSH BINARY LOGS从许多服务器复制数据可能会变慢。(漏洞 #24806259,漏洞 #83270)

  • 复制:禁用二进制日志记录时, 部分失败CREATE USERRENAME USERALTER USER语句未正确使用自动生成或指定的 GTID。(漏洞#24693798)

  • Replication: Binlog_sender将事件从二进制日志写入数据包缓冲区,然后将数据包发送到从属设备,并没有按预期减少发送缓冲区的大小。(漏洞 #24643036)

  • 复制: 当使用多线程从站(slave_parallel_workers大于 0)Seconds_Behind_Master 时,旋转中继日志时的值不正确。(缺陷号 23532304)

  • 复制:read_only如果启用了系统变量 ,服务器会阻止几个与复制相关的管理语句工作 (错误#22857926、错误#25363745、错误#25326058、错误#84350、错误#84437)

  • 复制: CHANGE MASTER TO对于不存在的通道可以提出断言。(缺陷号 22255698)

  • 复制:系统变量 指定的延迟 binlog_group_commit_sync_delay应用于过多的二进制日志提交组。(漏洞 #21420180)

  • Solaris: 由于对系统运行时库的依赖,Solaris 的最低要求版本现在是 Solaris 11 update 3。

  • Solaris: 在 Solaris 上,MySQL 现在是使用 Developer Studio 12.5 而不是gcc构建的。二进制文件需要安装 Developer Studio C/C++ 运行时库。有关如何仅安装库的信息,请参见此处:

    https://docs.oracle.com/cd/E60778_01/html/E60743/gozsu.html
  • JSON: 使用 clang 3.9 构建的 MySQL JSON 源代码引发了意外警告。(缺陷号 25039600)

  • Ubuntu 12.04 LTS:这是 MySQL 8.0 系列中最后一个支持 Ubuntu 12.04 LTS 的版本。根据 MySQL 支持生命周期政策关于终止对过时或已达到生命周期结束的操作系统版本的支持,我们计划在未来的版本中停止为 Linux 发行版构建二进制文件。(缺陷号 25828475)

  • Oracle Linux 5、Red Hat Enterprise Linux 5 和 CentOS 5:这是 MySQL 8.0 系列中支持 Oracle Linux 5、Red Hat Enterprise Linux 5 和 CentOS 5 的最后一个版本。根据有关终止支持的 MySQL 支持生命周期政策对于过时或生命周期结束的操作系统版本,我们计划在未来的版本中停止为这些 Linux 发行版构建二进制文件。此外,我们计划使用 glibc 2.12 为 Oracle Linux 6 的下一个版本构建通用 Linux tarball。(缺陷号 25828375)

  • mysqldump未能在写入转储输出的 SQL 语句中正确引用某些标识符。(缺陷号 25717383)

  • 服务器的客户端预授权缺少对长度编码字符串的长度检查。(漏洞#25714674)

  • (未记录的)WINDOWS_RUNTIME_MD CMake选项已被删除。(漏洞#25611359)

  • PID_FILE.shutdown 如果文件存在, mysqld_safe无法重新启动服务器 (漏洞 #25572504)

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

  • 对于 Debian/Ubuntu 软件包,用户定义的归类文件可能会在 MySQL 升级期间被覆盖。字符集文件现在标记为配置文件,以便用户自定义在升级期间生成是否覆盖它们的提示。(漏洞 #25525628,漏洞 #84761)

  • 对于CREATE TABLE使用数据库限定符指定表名并包含DATA DIRECTORYorINDEX DIRECTORY选项的语句,如果没有默认数据库,则会发生错误。(漏洞 #25514146,漏洞 #84861)

  • 启动服务器 performance_schema_digests_size=1 导致异常退出。(缺陷 #25492129,缺陷 #84786)

  • MySQL 在某些带有 -DWITH_LIBWRAP=ON. CMake支持现在检查是否 tcpd.h具有正确的函数原型。(漏洞 #25395543,漏洞 #84495)

  • mysqld_safe不检查--basedir选项命名的目录是否存在。(漏洞#25365194)

  • 配置CMake导致-G ninja构建输出不适用于 Xcode 或 Visual Studio 以外的构建平台。(缺陷号 25358460)

  • 如果选项命名的错误日志文件--log-error是 FIFO ,则mysqld_safe失败。(漏洞 #25356221,漏洞 #84427)

  • 对于准备好的语句,如果另一个别名依赖于它,子查询或派生表中的别名可能会在语句执行期间导致不正确的行为。(错误#25343335、错误#84398、错误#25171608)

  • 如果 --datadir选项值以 /字符结尾, mysqld_safe可能会失败。(漏洞 #25319457)

  • 最近对mysqld_safe的更改导致 mysql.server脚本无法启动它,如果基目录被指定为绝对路径,这与编译时的默认绝对路径不同。(漏洞 #25319392,漏洞 #84263)

  • 如果性能模式被禁用,CONNECTION_CONTROL插件将无法编译。(漏洞 #25308357,漏洞 #84304)

  • 使用 MySQL Workbench 创建的帐户的密码未正确过期。(缺陷号 25299309)

  • 对于 RPM 的 System V 初始化脚本, [mysqld]某些选项的选项文件部分被忽略,例如pid-file. (漏洞 #25287707,漏洞 #84172)

  • 如果使用非默认基目录,则 初始化脚本无法启动mysqld_safe 。(漏洞 #25261472,漏洞 #84219)

  • CMake现在检测是否出现 GCC 5.3.0 循环优化错误,如果出现则尝试解决方法。(缺陷号 25253540)

  • mysqld_safe --no-defaults不起作用(早期错误修复的无意结果)。(错误#25244898,错误#84173)

  • 语句内或语句之间的分号 ( ;) 字符可能会导致从相同的语句生成不同的摘要。(漏洞 #25244533,漏洞 #83253)

  • 对于链接到 的客户端libmysqlclient,在使用准备好的语句期间可能会发生无效的内存访问。(缺陷号 25164932)

  • Bug #25088048 的修复导致 mysqld_safe用于启动 MySQL 服务器的命令不再包含mysqld路径。(缺陷号 25144379)

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

  • 执行包含访问视图的查询的存储过程可能会分配直到会话结束才释放的内存。(缺陷号 25053286)

  • FreeBSD 11 上的编译尝试检查失败 MAP_NORESERVE,不再定义。(漏洞 #25048128,漏洞 #83689)

  • CMake-std=c++03添加了对使用Developer Studio 12.5 下的选项进行编译的支持。现在使用而不是stlport默认使用。(错误#24947136、错误#83512、错误#25229424)

  • UPDATE 如果派生表合并到外部查询中,则对于在存储过程或视图对象中调用 的多表中使用的派生表,对于对象的第二次或后续执行,特权检查可能不正确。(漏洞 #24810564)

  • 从客户端到启用了 SSL 的服务器的连接成功,即使--ssl-mode值为VERIFY_CAor VERIFY_IDENTITY且客户端未提供 CA 证书。(错误#24732452、错误#23189252、错误#25397416、错误#84508)

  • 如果InnoDB统计信息不正确, FOUND_ROWS()即使前一个SELECT没有返回任何行,也可能返回 1。(漏洞 #24714857,漏洞 #83110)

  • CMake现在 -DWITH_NUMA=ON尽可能设置为 Debian 平台。(漏洞 #24689101)

  • 如果 WHERE子句包含依赖子查询,表在选择列表中的列上有二级索引,后跟子查询中的列,和GROUP BY/或DISTINCT允许查询使用松散索引扫描,查询可能会产生不正确的结果。(漏洞 #24671968,漏洞 #83005)

  • 和单元测试没有在 Aarch64 平台上正确处理除零测试DebugPrintTestDebugPrintDeathTest感谢 Alexey Kopytov 提供的补丁。(缺陷 #24624555,缺陷 #82889)

  • 某些账户管理报表可能错误地将账户password_lifetime值设置为 NULL。(漏洞 #24619222)

  • 在最近的 MySQL 版本中 对mysqld_safe 所做的更改需要在命令行上指定--ledir, --mysqld, 选项;--mysqld-version它们不能再在选项文件中指定。这可能导致调用mysqld_safe的初始化脚本失败。此类脚本现在将MYSQLD_OPTS 环境变量的值作为第一个命令行参数传递给 mysqld_safe ,并将该值设置为可能需要的仅命令行mysqld_safe选项值。在使用 systemd 的平台上, 可以使用如下一行 MYSQLD_OPTS设置该值 :/etc/sysconfig/mysqld

    MYSQLD_OPTS=" --ledir=/mysqld_ledir --mysqld=my_wrapper "

    的值MYSQLD_OPTS还可以包括 mysqld_safe传递给 mysqld的mysqld选项 。(漏洞 #24619033,漏洞 #82920)

    参考:此问题是以下问题的回归:Bug #24464380、Bug #24483092、Bug #25088048、Bug #25378439、Bug #25378565。

  • 对于LOAD DATA用于将数据插入到可更新视图中,缺少用于验证列是否实际可更新的检查。(缺陷号 24595937)

  • 由于缺少空指针检查 ,表单的查询可能会引发断言。(漏洞 #24595612)SELECT NULL IN (subquery)

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

  • 填充 variables_by_thread表时,性能模式可能会尝试访问正在取消初始化的其他线程的会话变量。(漏洞#24555658)

  • 在 Debian/Ubuntu 平台上,MySQL 的 systemd 启动脚本忽略datadir/etc/mysql/my.cnf. (漏洞 #24517024,漏洞 #82709)

  • 对于null_audit插件, null_audit_event_record系统变量设置不当可能导致服务器退出。这个变量只能在null_audit插件中设置,所以它现在是只读的。(缺陷 #24493829,缺陷 #82670)

  • 由于内存分配失败或整数溢出,将正则表达式模式匹配到大字符串可能会导致服务器退出。(漏洞 #24449076,漏洞 #24449090)

  • 表选项CREATE TABLE的值较大的语句 报告了不正确的错误。CONNECTION该值现在限制为 1024 字节。(漏洞#24437124)

  • 对于调试版本,如果启用了二进制日志,则执行 audit_log插件 audit_log_filter_set_filter功能可能会导致服务器退出。(漏洞 #24437009)

  • audit_log 如果安装了插件, MySQL Enterprise Firewall 不会记录事件。(漏洞 #24413450,漏洞 #82473)

  • EXPLAIN SELECT COUNT(*) FROM tbl_name由于 MySQL 5.7.2 中引入的修改导致通过遍历聚集索引而不是较小的二级索引来计算行数,因此可能会错误地报告Extra值。该值现在显示 。(缺陷 #24337385,缺陷 #82313)Select tables optimized awayInnoDBExtraCount Rows

  • mysqldumpslow无法解析慢查询日志中的时间戳;它尚未更新以跟踪日志时间戳格式的更改。(缺陷号 24007040)

  • 如果启用了 GTID,则无法恢复使用 mysqlpump 制作的完整逻辑备份。

    为了能够控制写入转储文件的 GTID 信息,mysqlpump现在有一个 --set-gtid-purged选项指示是否向 输出添加语句。(缺陷号 23748432)SET @@GLOBAL.gtid_purged

  • audit_log插件写入有关事件失败的错误日志的 消息MYSQL_AUDIT_CONNECT 现在也打印出潜在的错误原因以帮助调试。(缺陷号 23710632)

  • FORCE INDEXSELECT COUNT(*)查询无效。(漏洞 #23596760,漏洞 #81854)

  • 如果给定参数 ,audit_log插件 audit_log_filter_remove_filter()函数会导致服务器退出。NULL(漏洞 #23522793)

  • 结构不正确的授权表可能会导致用户管理操作出现问题。作为此修复的结果,对于修改授权表的任何操作,服务器现在检查表是否具有预期的结构,如果没有则产生错误。必须运行mysql_upgrade以将表更新为预期的结构。(错误#23295423、错误#25095876、错误#25448037)

  • 如果在卸载时调用其中一个函数 ,则对插件和函数使用的锁的不当处理 version_tokens可能会导致服务器退出 。version_tokens(缺陷号 23210850)

  • QUOTE()函数可能会分配过多的内存。max_allowed_packet现在施加了字节限制, 并NULL在尝试分配更多字节时返回警告。(漏洞 #23195404)

  • 当试图定位数据目录时, mysqld_safe被错误地认为 $MY_BASEDIR_VERSION/var是可能的位置之一。(漏洞 #23013510,漏洞 #80866)

  • main.log_tables-big测试用例在高负载主机上可能不稳定 。感谢 Laurynas Biveinis 提供补丁。(缺陷 #22874167,缺陷 #80607)

  • rpl.rpl_key_rotation测试用例未与主服务器正确同步 。感谢 Laurynas Biveinis 提供补丁。(漏洞 #22838596,漏洞 #80531)

  • 使用聚合函数的查询 DISTINCT可能会产生不正确的结果。(漏洞 #22686994,漏洞 #80310)

  • 对于 RPM 包,error-log 部署/etc/my.cnf文件中的默认位置与安装的 logrotate脚本中的位置不同,导致 logrotate失败。(漏洞 #22322685)

  • 在包含 AUTO_INCREMENT列的表中执行插入然后执行 SELECT操作后, LAST_INSERT_ID()返回正确的值,但 mysql_insert_id()C API 函数的值被重置为 0。(错误 #22028117,错误 #78778)

  • 禁用系统变量 的use_index_extensions 标志后,某些查询可能会返回不正确的结果。(缺陷 #21749123,缺陷 #78244)optimizer_switchSELECT DISTINCT

  • Debian 软件包缺少与 AppArmor 相关的包含文件,并且错误地标记为依赖于 AppArmor(因此无法通过卸载来禁用 AppArmor)。(缺陷号 20768958)

  • 在复制环境中,SET PASSWORD或者ALTER USER 由于未能正确解析哈希字符串而无法在从站上执行。(缺陷号 20228478)

  • 在非 Linux Unix 系统上,mysql.server 启动脚本使用 Linux 命令pidof 而不是pgrep。(漏洞 #13788154,漏洞 #64342)

  • 在服务器异常退出后 启动多个mysqld_safe实例可能会导致一个mysqld_safe实例杀死另一个实例。由于错误修复,该 mysqld_safe.pid文件不再使用。(缺陷 #11751149,缺陷 #41908)

  • mysqld_safe--help消息 已更正为提到 、 和 选项(如果给定)必须是第一个参数。(缺陷 #11745176,缺陷 #11192)--no-defaults--defaults-file--defaults-extra-file

  • 每个级别(具有固定深度)的 XML 解析器位置堆栈的边界检查使用数组的大小作为上限,因此偏离了一个。这是通过将允许的深度减少一个来解决的,这实际上与位置堆栈中的最大元素数相匹配。(缺陷 #83871,缺陷 #25111907)

    参考资料:另请参阅:Bug #14040071、Bug #15948580。

  • 服务器端准备好的语句的时间戳可以写入二进制日志,最多比相应的非准备语句的时间戳晚一秒,导致主从服务器之间的时间值差异。(错误#74550、错误#19894382、错误#25187670)