Documentation Home
MySQL 5.7 发行说明  /  MySQL 5.7.25 的变化(2019-01-21,正式发布)

MySQL 5.7.25 的变化(2019-01-21,正式发布)

弃用和移除说明

  • resolveip和 resolve_stack_dump实用程序现已弃用,并将在 MySQL 8.0 中删除。 可以使用 nslookuphostdig代替resolveip。来自官方 MySQL 构建的堆栈跟踪始终是符号化的,因此无需使用 resolve_stack_dump

可插拔认证

  • 如果 LDAP 端口号配置为 636 或 3269,插件现在使用 LDAPS(LDAP over SSL)而不是 LDAP。authentication_ldap_sasl_server_port 可以使用或 authentication_ldap_simple_server_port 系统变量设置端口号 。(LDAPS 不同于 startTLS.)(漏洞 #28743563)

  • 以前,对于带代理的 LDAP 身份验证,LDAP 身份验证插件使用 LDAP 服务器返回的第一个组名作为 MySQL 代理用户帐户名。MySQL 帐户的身份验证字符串现在可以按优先顺序指定要匹配的组列表,并且可以选择将匹配的组名映射到指定的 MySQL 代理用户名。请参阅LDAP 可插入身份验证

安全说明

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

    此更改不影响 Oracle 生成的 MySQL Community 构建的 MySQL Server,它使用 yaSSL 库。(漏洞 #28988091)

添加或更改的功能

  • Microsoft Windows: 在 MySQL 服务器创建的命名管道上授予客户端的访问控制现在设置为在 Windows 上成功通信所需的最低限度。较新的 MySQL 客户端软件无需任何额外配置即可打开命名管道连接。如果不能立即升级旧的客户端软件,可以 named_pipe_full_access_group 使用新的服务器系统变量为 Windows 组提供打开命名管道连接所需的权限。完全访问组的成员资格应该是受限制的和临时的。

修正错误

  • InnoDB: 悬空指针导致内存泄漏。(漏洞#28693568)

  • InnoDB:ON DELETE CASCADE对具有外键约束和索引虚拟列的表 的(缺陷号 28470805)

  • InnoDB: 涉及虚拟列值的错误写入的 DML 日志引发了断言。(缺陷号 28448853)

  • InnoDB: 使用该O_DIRECT_NO_FSYNC innodb_flush_method设置可能会由于文件系统元数据变得不同步而导致系统挂起。为防止此问题在 O_DIRECT_NO_FSYNC模式下发生, 在创建新文件后、增加文件大小后和关闭文件后InnoDB调用每次写操作后仍然会跳过系统调用fsync()fsync()(错误号 27309336)

  • InnoDB: 在 64 位 Windows 系统上尝试写入大于 4GB 的表空间文件时出现断言。失败是由于铸件变窄。(错误#26636815,错误#87423)

  • 分区:ALTER TABLE包含 BLOB或 重复TEXT并不总是得到正确处理。(漏洞 #28491099)

  • 分区: 当分区表使用该选项ALTER TABLE ... EXCHANGE PARTITION有一个或多个分区定义时不起作用 此修复仅支持使用存储引擎DATA DIRECTORY的分区表InnoDB(缺陷号 19730200)

  • 复制:用于更正二进制日志语句中 标识符引号处理的补丁 ROLLBACK TO SAVEPOINT未正确应用于后续 MySQL 版本。(缺陷号 28569645)

  • 复制: 在 MySQL 5.7.23 中的一个补丁之后,LOAD DATA语句停止了从 MySQL 5.7.22 主服务器到稍后版本的复制从服务器的基于语句的复制。问题现已解决。(漏洞 #28541204,漏洞 #92132)

  • 复制: 在某些情况下,CHANGE MASTER TO如果主信息日志已从表 (master_info_repository=TABLE) 更改为文件 (master_info_repository=FILE),则无法在复制从属服务器上使用该语句。(缺陷号 28529558)

  • 复制:设置或读取 系统变量时 binlog_transaction_dependency_trackingbinlog_transaction_dependency_history_size 所需的锁类型可能会导致死锁情况,因为使用活动二进制日志也需要相同的锁。现在使用一种新的锁类型来代替对事务依赖跟踪系统变量的访问,这样就不会发生这种死锁。(错误#28511326、错误#91941、错误#28537209、错误#92108)

  • 复制:对于已使用mysqlbinlogmove移动到另一个位置的二进制日志文件, 该。此类文件仍列在二进制日志索引文件中,但它们使用绝对路径列出,而不是相对于二进制日志文件通常存储的目录的路径。MySQL 服务器现在可以成功定位和清除移动的二进制日志文件。(缺陷号 28284624)PURGE BINARY LOGS TO 'log_name'

  • 复制: 如果autocommit对于正在使用并设置了 GTID 的复制从属或组复制组成员设置为 0, super_read_only=ON则未完成的事务会阻止服务器关闭。该事务试图将 GTID 保存到 mysql.gtid_executed表中,但更新失败,因为 super_read_only=ON已设置。(autocommit如果设置为 1,事务将在这种情况下完成,而 mysql.gtid_executed表将在服务器启动时更新。)现在, super_read_only此任务跳过设置检查,因此事务能够将 GTID 保存到mysql.gtid_executedtable 和 complete 无论 super_read_onlyautocommit设置的组合如何。(缺陷号 28183718)

  • 复制:如果在手动设置值XA ROLLBACK 时为未知事务标识符发出语句, 则会在调试版本中引发断言 如果语句因错误而失败,gtid_next服务器现在不会尝试更新 GTID 状态XA ROLLBACK(缺陷 #27928837,缺陷 #90640)

  • 复制:语句 返回SHOW SLAVE STATUS的所有现有中继日志文件的总组合大小 (Relay_Log_Space) 的值可能比中继日志文件实际使用的磁盘空间大得多。I/O 线程在更新值时没有锁定变量,因此 SQL 线程可以在 I/O 线程完成值更新之前自动删除中继日志文件并写入减少的值。I/O 线程然后写入其原始大小计算,忽略 SQL 线程的更新并因此为已删除的文件添加回空间。该 Relay_Log_Space值现在在更新期间被锁定,以防止并发更新并确保准确计算。(错误#26997096,错误#87832)

  • 复制: 如果中继日志索引文件被复制从属的备份进程暂时锁定以供查看,并且 MySQL 服务器当时也尝试访问该文件以进行重命名或删除操作,则备份已完成并出现警告,但 MySQL 服务器遇到意外的停顿 MySQL 服务器现在会多次重试文件访问操作,以防出现这种情况或类似情况,并且文件很快就会再次可用。(缺陷号 25839610)

  • 复制:设置后,如果二进制日志 在sync_binlog=1更新二进制日志结束位置之前的提交期间被轮换,则复制在从站上停止,因为服务器试图将旧的二进制日志结束位置与新的二进制日志文件一起使用。服务器现在在更新二进制日志结束位置时将二进制日志文件名与活动二进制日志文件进行比较,因此不会发生此问题。(错误#22252394、错误#25524203、错误#84752)

  • Replication: 在组中添加新成员时,如果认证信息太大而无法传输,则产生一个事件,导致所有组成员失败。为了避免这种情况,现在如果认证信息过大会产生错误,使加入的成员离开群组。(错误#93130、错误#91870、错误#28900691、错误#28443958)

  • 复制: 停止复制时,任何具有待处理事务的通道都可能导致组复制中的死锁。(错误#92376、错误#28636768、错误#28365855)

  • keyring_awsmacOS 的商业软件包中缺少 该插件。

    此插件支持的 macOS 版本现在是 macOS 10.13 和 10.14。(漏洞 #29051838)

  • audit_log 如果安装了插件, MySQL Enterprise Firewall 将无法正常工作。(漏洞 #28930885,漏洞 #93184)

  • 服务器允许创建与重做日志文件同名的数据库,这可能会导致意外的服务器行为。这样的名称不再被允许作为数据库名称。(漏洞#28867993)

  • 将 Sun RPC 和 XDR 从glibc单独的libtirpc库中移除会导致libasan某些平台出现问题。(错误#28785835、错误#92762、错误#28897799、错误#93116)

  • 在 LDAP 组搜索过滤器值中,特殊字符未转义。用户 DN 中的特殊字符现在使用它们的十六进制等效字符进行转义,如下所示:

    *  =>  \2a
    (  =>  \28
    )  =>  \29
    \  =>  \5c
    \0 =>  \00

    (漏洞#28743525)

  • GET_LOCK()由于并发连接持有相同的用户级锁而失败的零超时调用 导致内存泄漏 。(漏洞#28714367)

  • mysqlpump 在遇到错误时没有释放所有分配的资源,导致内存泄漏。(缺陷 #28538971,缺陷 #92131)

  • 对于调试版本,服务器可能会在尝试回滚CREATE USER语句时退出。(缺陷号 28536312)

  • 对已弃用的系统变量的错误处理可能会导致对性能模式 variables_by_thread表的查询输出不正确。(漏洞 #28515475,漏洞 #92049)

  • 当子查询包含 aUNION时,子查询列数计算错误。(漏洞#28499924)

  • 在启用 GTID 的服务器上, INFORMATION_SCHEMA.COLUMNS表上的并发语句可能会死锁。(缺陷 #28293047,缺陷 #91548)

  • 使用该函数将日志文件名作为字符串进行比较会 memcmp()导致未初始化的内存读取错误。比较现在使用 strncmp()函数。感谢 Zsolt Parragi 和 Laurynas Biveinis 的贡献。(缺陷 #28178776,缺陷 #90238)

  • 在对第二列执行带有LIKE 子句的内部联接时,优化器跳过了复合索引中的第二列。(缺陷号 28086754)

  • CREATE TABLE ... SELECT可以创建具有日期默认值的日期列,而它本应在没有默认值的情况下创建日期列。(漏洞 #28022129)

  • IN对于大量表,子查询谓词到半连接 的转换没有得到正确处理。(漏洞 #28004674)

  • 服务器对SIGHUP信号的错误处理可能导致服务器退出。(缺陷 #27966483,缺陷 #90742)

  • 当一个字符串比较操作数的字符集是另一个操作数的字符集的超集时,一些比较被禁止,而这些比较应该通过将具有较小字符集的操作数转换为较大字符集来允许。 utf8mb4并且utf32被认为是任何其他编码的超集。(错误#27897053、错误#25642319、错误#85224)

  • 帐户管理语句的内存处理不当可能导致服务器行为不当。(漏洞 #27820277)

  • 执行准备好的语句来执行具有大量占位符的多行插入会消耗过多的内存并且执行速度可能会很慢。(漏洞 #27703912)

  • SET 解析器在触发器定义中接受了可能导致服务器退出的 无效 语句语法。(漏洞#27595603)

  • keyring_encrypted_file如果插件密钥环文件无效 ,则服务器无法启动 。(缺陷号 27588064)

  • 密钥环迁移失败,源和目标密钥环插件分别为keyring_okvkeyring_encrypted_file。(漏洞#27493970)

  • 当使用设置了标志的过程调用执行准备好的语句时CURSOR_TYPE_READ_ONLY,如果过程执行 SELECT返回空结果集的 a,则客户端库挂起。(缺陷 #27443252,缺陷 #89214)

  • 解析器错误地执行了一些内存不足检查。(缺陷号 25633994)

  • binlog_formatROWMIXED时,不记录对临时表的操作。以前,此规则的例外情况是,当连接在会话结束时终止时,会为会话中DROP TEMPORARY TABLE IF EXISTS打开的任何临时表记录该语句。对于基于行的复制,此行为会导致不必要地写入二进制日志,并为启用这些功能的 GTID 添加事务序列号。

    现在,当在会话中创建临时表时,将跟踪二进制日志记录格式。DROP TEMPORARY TABLE IF EXISTS如果创建临时表时基于语句的格式有效,则仅在会话结束时记录该语句,因此记录该语句CREATE TEMPORARY TABLE。如果在创建表时使用了基于行或混合格式的二进制日志记录,DROP TEMPORARY TABLE IF EXISTS 则不会记录该语句。

    感谢 Laurynas Biveinis 提供补丁。(错误#24670909、错误#83003、错误#28606948)

  • 使用的 DML 语句IGNORE并不总是在具有生成列的表上得到正确处理。(缺陷号 22990029)

  • 使用动态范围和索引合并的查询可能使用比预期更多的内存。(缺陷 #89953,缺陷 #27659490)