MySQL 8.0.33 GA 及发行说明

e05df672187237e643cf1f9c08c7a67e.gif

作者 | JiekeXu

来源 |公众号 JiekeXu DBA之路(ID: JiekeXu_IT)

如需转载请联系授权 | (个人微信 ID:JiekeXu_DBA)

大家好,我是 JiekeXu,很高兴又和大家见面了,今天和大家一起来看看 MySQL 8.0.33 GA 及发行说明,欢迎点击上方蓝字“JiekeXu DBA之路”关注我的公众号,标星或置顶,更多干货第一时间到达!

一、版本发布及生命周期

2023 年 4 月 18 日,MySQL 8.0.33 社区版发布了,同样,MySQL5.7.42 版本也发布了。如有需要,可在公众号后台回复【MySQL 8.0.33】获取 Linux平台和 Windows 平台下的安装包。

MySQL 8.0.33 (2023-04-18, General Availability)
mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz
MD5: 0bb9fd978d8b122d7846efc37884c0bb


mysql-test-5.7.42-linux-glibc2.12-x86_64.tar.gz
MD5: 7cfb526700bed207b65e0fb4d2ca3fe9 


https://dev.mysql.com/downloads/mysql/

8411217972341b783d0abbd83a042d12.png
735e552f96729ad1008c29c0afcc53a8.png

根据官方资料介绍,MySQL 5.7 最多还能发布两个版本就 EOL 了,生命周期于今年 2023 年 10 月份到期,2015 发布至今 8 个年头,长达 8 年的长期支持就到此结束。MySQL 8.0 是 2018 年发布,还能坚挺两年,标准支持延长到 2025 年 4 月,去年显示应该是到今年 4 月份到期,应该是做了调整,在之前的基础上延长了两年,延伸支持的期限没有改变,仍然是 2026 年 4 月。

0074432e5c9e193378f67b9665f7359e.png

二、MySQL 8.0.33 发行说明

如下链接是官方英文版的发行说明,我这里简单借助有道等工具直接机翻,如有翻译不到位的地方,还请见谅。

https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-33.html


--5.7 版本发行说明请自行查看
https://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-42.html

f432e9350f500e0335a32223efdda3f2.png主要有以下八大模块内容:

  • 审核日志说明

  • 汇编说明

  • 组件说明

  • 弃用和删除说明

  • MySQL 企业版说明

  • 性能架构说明

  • 添加或更改的功能

  • 错误已修复

审核日志说明

  • MySQL企业审计以前使用系统数据库中的表来持久存储过滤器和用户帐户数据。为了增强灵活性,新的audit_log_database服务器系统变量现在允许在服务器启动时在全局模式名称空间中指定其他数据库。系统数据库是表存储的默认设置。(WL #15500)

汇编说明

  • 微软视窗:为Visual Studio 2017及更高版本添加了MSVC代码分析支持。这将添加一个新的MSVC_CPPCHECK(默认为OFF) CMake选项,用于启用或禁用对当前目录及其子目录的此分析。(bug #34828882)

  • 在使用 GNU 编译器或 clang 构建 MySQL 时,将 curl 版本大于 7.86 的 curl 弃用警告降级为 -Wno-error。(bug #35111625)

  • 在 macOS 上,当需要链接 curl 接口以链接共享系统库时,添加 -framework CoreFoundation和-framework SystemConfiguration。(bug #35104962)

  • 已将宏替换为库接口。(bug #35018072、bug #35028089、bug #35072295)MY_INCLUDE_SYSTEM_DIRECTORIES

  • 改进了CMake代码以支持其他链接器。(bug #34963568)

  • 从构建系统中删除了不推荐的文件。(bug #34960126)Docs/mysql.info

  • 在目录中添加了一个顶级文件和关联文件。还启用了compdb 支持,以便在头文件上使用clang-tidy。(bug #34917075).clang-tidy.clang.tidystrings/mysys/

  • 删除了一些未维护或未使用的 c++ 源文件,用于诸如 uca-dump 和 uctypedump 等功能。(bug# 34898978)

  • 增加了一个 CMake 构建选项,以便在命令行上编译时为 GCC 和 Clang 启用彩色编译器输出。要启用,通过 -DFORCE_COLORED_OUTPUT=1 到 CMake。(bug# 34897192)
    -在 Windows 上,如果在第三方库中找到关联的 .dll 文件,也可以安装 .pdb 文件。(bug# 34863555)

  • 企业版 Linux 8 和企业版 Linux 9 版本现在使用 GCC 12 而不是 GCC 11。(bug # 34829151)

  • 使用 -static-libgcc 构建 -static-libstdc++ 现在还可以根据需要使用静态库构建绑定的 protobuf。感谢 Alex Xing 的贡献。(Bug #110216, Bug #35123848)

组件说明

INSTALL COMPONENT现在包括子句,它在安装一个或多个组件时设置组件系统变量的值。新的子句减少了与其他赋值方法相关的不便和限制。有关使用信息,请参见 INSTALL COMPONENT Statement(https://dev.mysql.com/doc/refman/8.0/en/install-component.html)。(WL #10916)SET

INSTALL COMPONENT component_name  [, component_name ...
     [SET variable = expr [, variable = expr] ...] 
  
  variable: {
    {GLOBAL | @@GLOBAL.} [component_prefix.]system_var_name
  | {PERSIST | @@PERSIST.} [component_prefix.]system_var_name
}




Example:


INSTALL COMPONENT 'file://component1', 'file://component2';


INSTALL COMPONENT 'file://component1', 'file://component2' 
    SET GLOBAL component1.var1 = 12 + 3, PERSIST component2.var2 = 'strings';
弃用和删除说明
  • 用户定义的排序规则(请参阅向字符集添加排序规则)现已弃用。现在,以下任何一种都会导致向日志中写入警告信息:
    在 SQL 语句 COLLATE 中出现的任何后跟用户定义排序规则的名称;
    使用用户定义的排序规则的名称作为 collation_server、collation_database 或collation_connection 的值;

  • 您应该期望在MySQL的未来版本中删除对用户定义排序的支持。(WL #14277)

MySQL 企业版说明

  • MySQL企业版现在提供基于组件的数据屏蔽和去标识功能,而不是基于MySQL 8.0.13中引入的插件库。组件实现提供了专门的权限来管理字典,并扩展了特定类型的列表,包括:

    Canada Social Insurance Number  加拿大社会保险号
    United Kingdom National Insurance Number 英国国民保险号码
    International Bank Account Number  国际银行账号
    Universally Unique Identifier (UUID)

  • 一个改进的基于表的字典注册表取代了插件使用的基于文件的字典。有关组件和插件实现之间差异的摘要,请参阅数据屏蔽组件与数据屏蔽插件。在安装新的MySQL企业数据屏蔽和去识别组件之前,现有插件用户应该卸载服务器端插件并删除其可加载功能。(bug #33851601、WL #12641)

性能架构说明

  • 在这个版本中增加了性能架构服务器遥测跟踪服务。该接口为插件和组件提供了一种检索与SQL语句生命周期相关的通知的方法。有关此接口的更多信息,请参阅MySQL源代码文档中的服务器遥测跟踪服务部分。

增加了以下内容:

状态变量Telemetry_traces_supported。是否支持服务器遥测跟踪。(布尔值)

TELEMETRY_ACTIVE列已添加到“线程”表中。表明线程是否附加了活动的遥测会话。
(WL #15059)

添加或更改的功能

  • 重要更改:对于绑定 OpenSSL 库的平台,MySQL 服务器的链接 OpenSS L库已更新到 1.1.1t版本。OpenSSL 版本 1.1.1t 中修复的问题描述在 https://www.openssl.org/news/cl111.txt。(bug #35092429)

  • InnoDB:现在支持并行索引构建,这提高了索引构建的性能。特别是,将排序的索引项加载到b树中现在是多线程的。以前,此操作是由单个线程执行的。(WL #14772)InnoDB

  • 复制:作为更改 MySQL 产品中使用的旧术语的工作的一部分,术语 “master”,“slave” 和“MTS” 在与 MySQL 复制相关的错误消息中分别被 “source”,“replica” 和 “MTA” 所取代。这包括在复制中列出的和与复制相关的所有错误消息;当前任务不会对其他上下文中使用的消息执行此替换。messages_to_clients.txtmessages_to_error_log.txt

有关详细信息,请参阅 MySQL 8.0 错误消息参考。(https://dev.mysql.com/doc/mysql-errors/8.0/en/)(Bug #108422, Bug #34594819, WL #14191)

  • 复制:mysqlbinlog: --start-position 现在接受的值最多为 18446744073709551615,除非还使用了 --read-from-remote-server 或 --read-from-remote-source 选项,在这种情况下,最大值为 4294967295。(Bug #77818, Bug #21498994)

  • 包含 curl 而不是链接到系统 curl 库的二进制包已经升级为使用 curl 7.88.1。(bug # 34828111)

  • 不允许使用带有 DEFAULT(col_name) 的生成列来指定列的默认值,并且现在会发出错误消息。

错误已修复

  • NDB Cluster:没有重试在重复执行并发模式操作时从字典打开表时可能出现的临时错误。(错误 #34843889)NDB

  • NDB Cluster:在迭代期间,有序索引扫描在每个并发扫描的有序索引片段中保留游标位置。提交 DML 事务后,有序的索引片段被修改和平衡,这可能需要在树中移动扫描游标。在配置查询线程(AutomaticThreadConfig 设置为 1)的情况下运行时,多个线程可以访问相同的索引片段树结构,并且多个线程的扫描可以使其游标出现在相同的结构中。

当前的问题是由于在提交DML操作时移动扫描游标的逻辑中的一个假设,即所有扫描游标都属于拥有索引片段的LDM线程,这就不允许这些片段可能属于查询线程。(bug #33379702)

参考:另请参阅:bug #32257063。

  • 分区:分区表上的一些IN()查询并不总是得到正确处理。(bug #34801284)

参考:此问题是以下错误的回归:bug #32311183。

  • 分区:使用INDEX_MERGE优化器提示的查询在所有情况下都不能正确处理。(bug #34797257)

  • 复制:XID 包含空字节的 XA 事务不能恢复。(bug #34918985)

  • 复制:当 binlog_order_commits 被设置为 1 时,对于任何两个事务和提交阶段的任何子步骤,首先写入二进制日志的事务并不总是像预期的那样首先执行子步骤。(bug #34703698)

  • 复制:二进制日志恢复过程未报告所有可能错误状态。(bug #33658850)

  • 复制:在CHANGE REPLICATION SOURCE TO SOURCE_CONNECTION_AUTO_FAILOVER=1之后,故障转移会在日志中生成许多误导性的警告,暗示存在问题,而实际上这种故障转移的条件是预期的。这些日志消息已相应更新。(bug #32135376)

  • 复制:当事务失败时,作为副作用,与复制数据存储库相关的无关错误消息被写入日志。现在,在这种情况下,我们抑制这些错误消息,它们与失败的事务问题或其原因没有直接关系。(bug #19820134)

  • 复制:将binlog_order_commits设置为OFF可能导致在下一个二进制日志文件的Previous_gtids事件中遗漏GTID。我们感谢 Yewei Xu 和腾讯团队的贡献。(bug #109485、bug #34930969)

  • 复制:修正了 ER_RPL_REPLICA_ERROR_RUNNING_QUERY 错误消息文本中建议的 SQL 语句。
    感谢 Dan McCombs 的贡献。(bug #109154、bug #34822612)

  • 复制:散列扫描构建更改的散列,扫描目标表或索引,并为当前条目应用任何匹配更改。在构建阶段,它只使用前映像,并跳过任何后映像。在某些情况下会出现问题,因为生成的列是为(跳过的)after映像计算的,从而导致复制错误。这个问题可以通过不再计算生成的列来解决,这些列只用于寻道调用,比如散列扫描。我们感谢 dc huang 的贡献。(bug #107366、bug #34198907)

  • 复制:在某些罕见的情况下,有可能在一个会话中设置gtid_mode=OFF,而另一个会话,在用户在第二个会话中发出WAIT_FOR_EXECUTED_GTID_SET()之后,仍在等待第一个会话的下一个GTID集。这可能导致第二个会话无限期地等待函数返回。(bug #99921、bug #31505993)

  • 组复制:并行访问性能模式replication_group_communication_information和replication_group_member_stats表有时会导致后续的组复制操作挂起。(bug #34870181)

  • 组复制:在某些情况下,组复制辅助节点 清除中继日志时意外关闭。(bug #34397106)

  • 组复制:关闭Group Replication插件时,报告错误日志中相关事件的顺序有时会导致混淆。为了消除任何疑问,我们现在确保Plugin group_replication报告:'Plugin 'group_replication’已被停止。实际上是与关闭相关的最后一个日志消息,仅在与关闭插件相关的所有其他事件被记录时才写入。(bug #109345、bug #34887491)

  • 微软视窗:authentication_fido_client 插件如果无法在Windows客户端主机上找到FIDO设备,则在身份验证过程中停止响应。(bug #34918044)

  • 在某些情况下,CONVERT(utf8mb3_column USING UTF16)被拒绝,并出现错误 Cannot CONVERT string '\x——…'从二进制转换为 utf16。(bug #35129361)

-当在字符串列上连接两个表时,其中一个表的列有一个额外的谓词,将其与时态字面量进行比较,在某些情况下,常量传播错误地导致连接条件被修改,以便在比较字符串时使用时态语义而不是字符串语义。这会导致从连接返回不正确的结果。(bug #35115909)

-在准备好的语句中调用 mysql_reset_connection() C API 函数后返回的错误消息没有正确识别函数名称。(bug #35107280)

  • 修复了先前修复中窗口函数问题的回归。

我们感谢 Dmitry Lenev 的贡献。(bug #35061924)

参考资料:这个问题是一个回归:Bug #34572136。

  • 在转换中替换子查询时,显示给定查询块是否包含任何子查询(PROP_SUBQUERY)的内部标志随后没有更新。(bug #35060365)

  • 当客户端使用身份验证插件时,将字符集设置为不允许的客户端字符集(ucs2, utf16, utf16le或utf32)可能会导致意外行为。(bug #35054579)

  • 当平均行数小于1时,EXPLAIN ANALYZE 显示0。为了解决这个问题,我们现在格式化EXPLAIN ANALYZE 和 EXPLAIN format =TREE 输出中的数字,以便 0.001-999999.5 范围内的数字以十进制数字打印,而此范围之外的数字使用工程符号打印(例如:1.23e+ 9,934e -6)。此外,后面的零不再被打印,小于 1e-12 的数字被打印为0。
    这有助于确保一致的精度,无论数字的值和提高可读性,同时产生最小的舍入误差。(bug #34990948)

  • NTILE()函数并非在所有情况下都能正常工作。(bug# 34986665)

  • 视图上的某些连接没有正确执行。(bug #34985359)

  • 将关联标量子查询转换为派生表时,当子查询包含重复谓词时,会导致 InnoDB 表的错误结果。可能受此问题影响的查询示例如下:

SELECT * FROM t1 
WHERE (
  SELECT t2.a FROM t2
  WHERE t2.a = t1.a AND t2.a = t1.a
    ) > 0;

(bug #34973220)

  • 修正了 sql/item_strfunc.cc 中的断言,这可能会导致SPACE()函数出现问题。(bug #34962821)

  • 使用ROW_COUNT()作为LPAD()或RPAD()的长度参数没有按预期执行。(bug #34961236)

  • 如果窗口函数的查询在其 ORDER BY 子句中有一个带 CASE 函数的表达式,则可能导致服务器退出。(bug  #34933045)

  • 先前问题的修复在优化 HAVING 子句时在调试构建中引入了一个断言。(bug #34923792)

参考:此问题是以下错误的回归:bug #33725415。

  • 当使用mysqld_multi时,将“–password”的用法模糊为“–password=*****” 的系统也会将“–password-history”和“–password-require-current”的定义匹配为“–password”,但现在显式地检查“–password=”。(bug #34918740)

  • 在某些情况下,调用mysql_bind_param() C API函数可能会导致服务器变得无响应. (bug #34869076)

  • 如果authentication_oci_client插件的任何条目包含由空格分隔的等号字符(例如,key_file = /home/user/.oci/oci_api_key.pem),则该插件无法打开有效的配置文件。现在,支持’key=value’和’key=value’两种输入格式。(bug #34864078)

  • 当INTERSECT或EXCEPT操作的结果与另一个表连接时,将返回不正确的结果。当与DISTINCT或ALL一起使用时,此问题会影响这些操作(bug #34843764)

  • 在准备视图查询时,操作使用了系统字符集(而不是存储在数据字典中的字符集),然后报告了无效的字符串错误。(bug # 34800905)

  • 对派生表(包括视图)进行操作的预处理语句可能会意外停止,原因是在出现错误后重新打开表的代码存在问题。(bug# 34798403)

  • 删除了在调试版本中由 RANDOM_BYTES() 函数在某些情况下引发的断言。(bug # 34781507)

  • 在启动时如何设置持久化变量存在一个问题,导致某些变量不能正确地设置为它们的持久化值。(bug# 34751419)

  • MAKETIME()函数并非在所有情况下都正确执行。(bug# 34745241)

  • 一些带有多个参数的函数没有产生预期的结果。(bug# 34741801)

  • 在使用表的带括号的查询块之外的 ORDER BY 中的表引用,并且该查询块本身没有 LIMIT 或 ORDER BY,会引发错误。(bug# 34704011)
    参考资料:此问题是对Bug #103954, Bug #32980249的回归。

  • 在 MySQL 5.7 中,带有不可能条件的左连接作为 ON 子句的一部分没有被优化,因此在MySQL 8.0 中,不带不可能条件的查询执行速度比带不可能条件的查询执行速度要快。一个这样的查询示例,包括不可能的条件是 SELECT * FROM t1 JOIN t2 ON t1.c1=t2.c1 AND 1=2 (bug # 34668756)

  • 如果用户定义的函数是合并到外部查询块中的派生表的一部分,或者是转换为半连接的子查询的一部分,则在处理过程中会丢失关于该UDF是否确定的知识。(bug# 34666531)

  • 启用 JSON 日志记录并在审计日志过滤器定义中指定事件子类后,将在记录的事件末尾添加一个空项("":{})。(bug # 34659904)

  • 有些子查询没有正确执行。(bug# 34616553)

  • 在SELECT查询中的 asymmetric_encrypt() 组件函数遇到要解密的 NULL 字段后,它可以为其他非 NULL 加密字段返回 NULL 值。(bug# 34598912)

  • 在卸载审计日志插件后,服务器并不总是完全关闭。(bug# 34594035)

  • 服务器没有正确处理某些反连接。(bug# 34370673)
    参考资料:此问题是对 Bug #30573446 的回归。

  • 当 MySQL 5.7 Optimizer 对一个索引有两个选择来过滤行,一个主索引和一个辅助索引时,它会在辅助索引上选择范围扫描,因为范围扫描使用更多的关键部分。MySQL 8.0 没有使用这个逻辑,而是选择主索引用 WHERE 子句过滤行。由于存在 LIMIT 以及数据分布的性质,在这种情况下不适合使用主键。由于不断消去,在求解顺序时没有考虑二级指标。这导致同一个查询在 MySQL 5.7 和 MySQL 8.0 中的查询计划大不相同。

我们在 MySQL 8.0 中解决这个问题的方法是,只有在查询是常量优化的情况下,才在排序求值期间跳过索引的常量键部分,这个时候可以这样做,但在 LIMIT 分析期间不能这样做。(bug# 34291261)

  • MySQL数据字典缓存查找失败的se_private_id值(没有找到的id),这加快了InnoDB特定代码的执行速度,依赖于InnoDB不重用这些id的事实。这个假设并不一定适用于其他存储引擎,最明显的是NDB,这个问题以前通过不使用这个缓存解决了。
    我们扩展了之前为NDB所做的修复,现在只有当表使用InnoDB存储引擎时才会使用缓存查找。(bug# 34145006)

参考文献:参见:Bug #33824058。

  • 在使用DENSE_RANK()的某些查询中,可能会看到意想不到的结果,可能会添加with ROLLUP。(bug# 34099408)

  • 修复了sql/sql_tmp_table 中引发的断言。cc在之前完成的工作之后重新实现ROLLUP处理。(bug# 33830659)

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

  • 一些不使用任何表的cte并不总是得到正确处理。(bug# 33725542)
    参考资料:此问题是对Bug #27062031的回归。

  • 从窗口函数调用的窗口框架访问仅存在于查询的 ORDER BY 列表中的行会引发错误。(bug# 33069747)

  • 与ORDER BY列一起使用的 PERCENT_RANK()没有返回正确的结果。(bug# 33064174)

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

  • --exclude-tables 和 --include-tables mysqlpump选项不能处理视图。(bug# 21303549)

  • 将MySQL systemd服务单元配置从 After=network-online 更改。target to Wants=network-online。目标,以确保所有配置的网络设备可用,并在服务启动前分配了IP地址。(Bug #109996, Bug #35068274)

  • AVG(…)OVER (ROWS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING)没有返回正确的结果。(Bug #109725, Bug #35013880)
    参考资料:此问题是对Bug #108008, Bug #34431996的回归。

  • 当启用subquery_to_derived优化器开关时,在调试版本中,查询SELECT 1 FROM t1 WHERE NOT EXISTS (VALUES ROW(1), ROW(2))会导致断言。(Bug #109723, Bug #35014318)
    参考资料:参见:Bug #108910, Bug #34746261。

  • Mysqlimport在使用 --delete 选项时没有转义保留字表名。(Bug #109711, Bug #34999015)

  • 当克隆条件以下推到派生表时,只有值小于128 (ASCII子集)时,表示条件的字符串中的字符才会正确转换为 utfmb4,而ASCII子集之外的代码点会被转换为无效字符,从而导致生成的字符串无效。对于没有 UNION 的派生表,当派生表中的列名使用了 ASCII子集之外的字符,并且在WHERE条件中使用时,就会出现问题。对于具有 UNION 的派生表,当在 WHERE 条件中出现ASCII 子集以外的字符时,就会产生问题。我们通过将用于表示这种情况下的条件的字符串初始化为连接字符集来解决这些问题。(Bug #109699, Bug #34996488)

  • 在 mysqldump 8.0.32 版本中使用 --single-transaction 需要 RELOAD 或 FLUSH_TABLES 权限。这个要求现在只适用于 gtid_mode=ON(默认为OFF)和 --set-gtid-purged =ON |AUTO(默认为AUTO)。(Bug #109685, Bug #109701, Bug #34993824, Bug #34998910, Bug #35020512)
    参考资料:此问题是对Bug #105761, Bug #33630199的回归。

  • 许多使用 eq_ref 访问的连接不如以前的版本执行得好。此问题首次在 MySQL 8.0.29 中报告。(Bug #109631, Bug #34891365)

  • 修复了sha256_scramble_generator 和 sha2_password_common.cc 中混乱生成器算法的内部文档中存在的一些问题。
    感谢Niklas Keller的贡献。(Bug #109576, Bug #34967141)

  • CREATE USER IF NOT EXISTS 添加一个密码历史条目,即使用户已经存在并且密码没有更新。这会导致随后的 ALTER USER 语句被拒绝。(Bug #109415, Bug #34906592)

  • 散列外部连接有时会错误地将NULL与十进制零或使用非填充排序的空字符串匹配,从而导致错误的结果。(Bug #109211, Bug #34837464)
    参考资料:这个问题是对Bug #33794977的回归。

  • ALTER INSTANCE RELOAD TLS 内部使用的对象直到读取器数量达到 0 才被释放,假设读取器数量应该相当频繁地达到 0。在SSL握手期间持有的读锁通常是一个开销很大的操作,包含网络调用,因此当客户机和服务器之间的往返花费过长时间时,锁将被持有相对较长的时间。这意味着,当更改此对象的值并且有足够数量的传入SSL连接时,读取器的数量可能不会在合理的时间长度内达到0,从而使线程使用100%的CPU来持有锁,直到锁被释放。

我们通过在将指向该对象的指针设置为新值之后,但在释放旧对象之前添加等待来修复这个问题。我们感谢Sinisa Milivojevic的贡献。(Bug #107567, Bug #34284186)

  • 如果mysqldump或mysqlpump不能将字段的默认值转换为UTF-8(例如,如果字段的类型是BINARY,并且默认值与有效的UTF-8不一致),则该操作产生的结果无法导入。此外,使用 --hex-blob 选项并不能解决这个问题。现在我们将默认值转换为系统字符集。如果失败,服务器将以十六进制形式发送值,以使其更易于人类阅读。(Bug #104840, Bug #33322551)

  • 使用C API (libmysqlclient)客户端库的连接可能会因FUTURE加密策略而失败。(Bug #104778, Bug #33316709)

  • 在为使用共享物化的公共表表达式克隆临时表时,克隆的临时表没有被标记为使用散列重复数据删除,从而导致错误的结果。现在,我们为克隆的临时表正确设置哈希字段,并更新隐藏字段计数以考虑这一点。(Bug #102251, Bug #32383712)
    参考资料:参见:Bug #103052, Bug #32659629。

  • CREATE EVENT和ALTER EVENT假定传递给它们的所有值(DO子句中除外)都解析为标量,而不实际检查值。这导致当任何这样的值实际行时产生断言。
    现在,我们在解析这些项时执行显式检查列数,并在生成一行而不是标量值时报告错误。(Bug #57552, Bug #11764690)

  • 当底层字段为常量的视图引用是外部连接的内部表的一部分时,该视图引用不会被标记为常量。结果发现,当将条件下推到派生表时,引用被剥离,只克隆底层字段,这使其成为常数,并导致错误的结果。为了解决这个问题,我们要确保不会将这样的条件下推到派生表,方法是添加一个检查,首先检查条件使用的表是否与派生表匹配,或者是否是一个常量表达式;只有当它是其中之一时,我们才会把条件推下去。(Bug #34661, Bug #11747971)

244fedd28bc1ff32b215070727705161.png

全文完,希望可以帮到正在阅读的你,如果觉得此文对你有帮助,可以分享给你身边的朋友,同事,你关心谁就分享给谁,一起学习共同进步~~~

欢迎关注我的公众号【JiekeXu DBA之路】,第一时间一起学习新知识!

————————————————————————————
公众号:JiekeXu DBA之路
CSDN :https://blog.csdn.net/JiekeXu
墨天轮:https://www.modb.pro/u/4347
腾讯云:https://cloud.tencent.com/developer/user/5645107
————————————————————————————

3d1c23dca48588964ca761107aa8a1b7.gif

分享几个数据库备份脚本

Oracle 表碎片检查及整理方案

OGG|Oracle GoldenGate 基础2022 年公众号历史文章合集整理
 
  

Oracle 19c RAC 遇到的几个问题

OGG|Oracle 数据迁移后比对一致性

OGG|Oracle GoldenGate 微服务架构

Oracle 查询表空间使用率超慢问题一则

国产数据库|TiDB 5.4 单机快速安装初体验

Oracle ADG 备库停启维护流程及增量恢复

Linux 环境搭建 MySQL8.0.28 主从同步环境

06887aeeafdebb570eda7615e5f7a3af.png

猜你喜欢

转载自blog.csdn.net/JiekeXu/article/details/130256824
GA