Documentation Home
MySQL 5.7 发行说明  /  MySQL 5.7.28 的变化(2019-10-14,正式发布)

MySQL 5.7.28 的变化(2019-10-14,正式发布)

配置注意事项

  • 现在可以使用 OpenSSL 1.1.1 编译 MySQL 5.7,即使 OpenSSL 1.0.2 在 2019 年底达到生命周期结束状态,也可以针对 OpenSSL 启用对 MySQL 5.7 的编译支持。

  • 所有 MySQL 5.7 构建现在都使用 OpenSSL。MySQL 不再支持使用 yaSSL 作为 SSL 库,并且源代码分发不再包含 yaSSL。

    CMake选项不再允许 ( 使用yaSSL)作为有效值,并且默认选项值已从更改 为(使用主机系统上安装的 OpenSSL 版本)。 WITH_SSL bundledbundledsystem

安全说明

sys架构注释

  • sys.schema_unused_indexes视图现在过滤掉唯一索引。感谢 Gillian Gunson 的贡献。(缺陷 #24798995,缺陷 #83257)

  • 如果参数是未知的非消费者名称 ,该sys.ps_is_consumer_enabled() 函数现在会产生错误而不是返回 。(缺陷号 24760317)NULLNULL

  • 以前,sys模式源在单独的 Git 存储库中维护。sys 模式源现在包含在 MySQL 源分发中并在其中维护(在 下 scripts/sys_schema)。

    sys.version视图已弃用,将在未来的 MySQL 版本中删除。受影响的应用程序应调整为使用替代方案。例如,使用该VERSION() 函数检索 MySQL 服务器版本。

修正错误

  • InnoDB:对 MyISAM 表 的ALTER TABLE ... ENCRYPTION = 'Y'操作未能引发错误,指示存储引擎不支持加密。该INPLACE算法在更新文件中的元数据之前不检查加密支持 .frm。为解决此问题,添加了加密支持标志。ALTER TABLE ... ENCRYPTION = 'Y'如果存储引擎不支持加密,该 (漏洞 #29543447)

  • InnoDB: 删除标记的行能够在部分回滚完成之前获取外部读锁。外部读锁在部分回滚期间阻止了隐式锁到显式锁的转换,导致断言失败。(漏洞#29195848)

  • InnoDB:ALTER TABLE ... ADD INDEX具有并发插入 的长时间运行 感谢 Satya Bodapati 提供补丁。(缺陷号 29008298)

  • Replication:START SLAVE当 SQL 线程仍在停止过程中时, 如果发出一条语句在 slave 上启动 SQL 线程,并且同时请求 slave 状态,则可能会发生涉及三个线程的死锁 现在已通过在 SQL 线程停止时提前释放锁定来解决此问题。(缺陷 #29697588,缺陷 #95115)

  • 复制:功能 中的锁定问题 WAIT_FOR_EXECUTED_GTID_SET()可能导致服务器在某些情况下挂起。该问题现已得到纠正。(漏洞 #29550513)

  • 复制: 在使用 GTID 并 MASTER_AUTO_POSITION设置为 ON,在意外停止后,从站将尝试中继日志恢复,如果中继日志丢失,则失败,从而阻止复制开始。但是,此步骤是不必要的,因为 GTID 自动定位可用于恢复任何丢失的事务。在恢复情况下,slave现在首先检查是否 设置MASTER_AUTO_POSITIONON. (漏洞 #28830834,漏洞 #92882)

  • 从 SQL 脚本生成 C 源代码时,一些 utf8 编码的字符被拆分成多行。感谢 Przemysław Skibiński 提供补丁。(漏洞 #30152555,漏洞 #96449)

  • SHOW PROCESSLIST输出可以包括已经完成但不再进行的报表。(漏洞#29999818)

  • 对于 Solaris,mysqld.cc包含一个memcntl()不再需要的原型。原型已被删除。(缺陷 #29953495,缺陷 #95971)

  • 对于 Solaris,-DWITH_SSL=system在使用 GCC 编译时不起作用。(缺陷 #29953460,缺陷 #95970)

  • MySQL 构建配置-DWITHOUT_SERVER=1 失败。(缺陷 #29948728,缺陷 #95740)

  • 对于keyring_aws插件,系统变量的一些有效区域值 keyring_aws_region被拒绝。(漏洞#29933758)

  • UNION对于调试版本,在计算GEOMETRY列和 的组合数据类型时 ,可以在查询期间引发断言 SELECT * FROM (SELECT NULL)。(缺陷 #29916900,缺陷 #95827)

  • 对于使用 LDAP 身份验证插件的身份验证,如果用户 DN 部分为空并且配置了组映射,身份验证会分配不正确的用户 DN 并跳过用户搜索。(漏洞#29897624)

  • mysqlpump在针对早于 MySQL 5.7 的服务器运行时产生错误。(漏洞#29889253)

  • 由于无符号整数类型转换可能导致的整数溢出可能导致以后由于任意大小的内存分配而导致缓冲区溢出。(漏洞#29878914)

  • 在 MeCab 插件初始化期间尝试使用释放的对象导致了分段错误。(漏洞#29832534)

  • 对于使用 RPM 包安装的 MySQL,如果客户端帐户使用 LDAP 身份验证插件进行身份验证,则测试服务器连接性的初始化脚本会出现异常。(漏洞#29786782)

  • 存储引擎初始化期间不正确的锁定可能导致服务器退出。(漏洞#29782379)

  • 在启用 GTID 的服务器上,访问视图的并发执行 DROP USER和准备好的语句可能会死锁。(漏洞#29772622)

  • 由于使用/ZI标志,VS2019 产生了编译错误,并选择了调试编译。现在 /Z7改为使用。(缺陷 #29691691,缺陷 #95125)

  • 客户端库可以在从服务器获取结果集元数据时取消引用空指针。(错误#29597896,错误#30689251)

  • 在隔离级别,在memcached客户端READ UNCOMMITTED的重负载下发生分段错误 。一个事务正在更新的外部存储 列被另一个事务读取为具有 NULL 值和非零数据长度。(缺陷 #29396364,缺陷 #93961)BLOB

  • TIMESTAMPADD() 对于准备好的语句,可以反转函数 的参数。(缺陷号 29268394)

  • 对于 MySQL Community Edition,客户端指定的密码顺序优先于服务器端的顺序使用,除非服务器配置了明确的 ssl_cipher顺序。(漏洞#26882825)

  • thread_pool启用插件后, 视图sys.processlist显示 sys.session线程名称而不是实际用户名。(漏洞 #25906021,漏洞 #85976)

  • 视图中的delete_latencysys.schema_index_statistics错误地引用SUM_TIMER_INSERT 了 Performance Schema table_io_waits_summary_by_index_usage 表的列而不是SUM_TIMER_DELETE 列。(漏洞 #25521928)

  • 在该 sys.diagnostics()过程的输出中,视图的 latency列以 user_summary_by_file_io_type原始皮秒而不是格式化值的形式错误显示。(漏洞#25287996)

  • MySQL Enterprise Encryption 函数可以将 Diffie-Hellman (DH) 方法应用于非 DH 密钥,从而导致不可预测的结果或服务器退出。(漏洞 #22839007)

  • SHOW PROCESSLIST一些 INFORMATION_SCHEMA和 Performance Schema 表 的密码屏蔽不完整。(缺陷号 20712046)

  • CMake选项被忽略但不应该被忽略 。 如果给出,存储引擎被构建为一个插件。(错误#70859,错误#17772560,错误#30133062)-DWITH_EXAMPLE_STORAGE_ENGINE=1 -DWITH_EXAMPLE_STORAGE_ENGINE=0EXAMPLE

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