暂无图片
暂无图片
11
暂无图片
暂无图片
暂无图片

MySQL 8.4 新特性深度解析:功能增强、废弃项与移除项全指南

841

大家好,我是 JiekeXu,江湖人称“强哥”,青学会 MOP 技术社区主席,荣获 Oracle ACE Pro 称号,墨天轮 MVP,墨天轮年度“墨力之星”,拥有 Oracle OCP/OCM 认证,MySQL 5.7/8.0 OCP 认证以及 PCA、PCTA、OBCA、OGCA、金仓KCA、KCP 等众多国产数据库认证证书,今天和大家一起来看看MySQL 8.4 新特性深度解析:功能增强、废弃项与移除项全指南!欢迎关注我的微信公众号“JiekeXu DBA之路”,然后点击右上方三个点“设为星标”置顶,更多干货文章才能第一时间推送,谢谢!

前 言

长周期支持版本 MySQL 8.4 自去年四月份发布以来经历一年的时间,也已经发布了五个版本,今天就让我们一起来看看这五个版本都有哪些新特性或功能增强,或者移除废弃的功能呢。

MySQL 8.4 LTS 长周期版本近一年来发布时间表

发布日期 版本 官方文档说明链接
2024-04-30 8.4.0 https://dev.mysql.com/doc/relnotes/mysql/8.4/en/news-8-4-0.html
2024-07-01 8.4.1 https://dev.mysql.com/doc/relnotes/mysql/8.4/en/news-8-4-1.html
2024-07-23 8.4.2 https://dev.mysql.com/doc/relnotes/mysql/8.4/en/news-8-4-2.html
2024-10-15 8.4.3 https://dev.mysql.com/doc/relnotes/mysql/8.4/en/news-8-4-3.html
2025-01-21 8.4.4 https://dev.mysql.com/doc/relnotes/mysql/8.4/en/news-8-4-4.html
2025-04-15 8.4.5 https://dev.mysql.com/doc/relnotes/mysql/8.4/en/news-8-4-5.html

图片.png

从上面可以看出,8.0.X 以及 8.4.X 以及 9.7.X 这三个版本均是长周期支持版本,但 8.0.X 明年将会结束生命周期,下一个 LTS 版本是 8.4.X,那么这个版本虽然被广大的社区同仁所诟病,没有太多重大的新特性能拿出手,那么到底都有啥,一起来看看吧。

MySQL 8.4 系列版本(从 8.4.0 到 8.4.5)带来了多项技术改进,聚焦用户认证、存储引擎优化、复制增强及生态兼容性,但也伴随着部分功能的废弃与移除。本文结合官方发布说明,全面梳理新特性及需要注意的兼容性变化,助你高效评估升级价值。

一、核心新特性:从安全到性能的全方位优化

1. 用户认证与安全策略升级

  • 原生密码认证插件默认禁用
    MySQL 8.4 不再默认启用 mysql_native_password 认证插件,转而推荐使用更安全的 caching_sha2_password(默认)或外部认证方式(如 LDAP、Kerberos)。若需兼容旧版客户端,需通过 --mysql-native-password=ON 显式启用。
  • Windows 平台 LDAP 认证增强
    新增基于 SASL 的 LDAP 认证支持,无缝集成企业级身份管理系统,同时兼容 GSSAPI/Kerberos 协议,提升域环境下的权限管理效率。

2. InnoDB 存储引擎深度优化

  • 动态资源分配适配容器环境
    新增容器感知功能,自动识别 Docker/Kubernetes 环境的 CPU 和内存限制,动态调整 innodb_buffer_pool_instances(默认根据 CPU 核心数和缓冲池大小计算)和 innodb_io_capacity(默认提升至 10000,适配高速 SSD 存储),降低云部署的手动调优成本。
  • 数据一致性与恢复能力强化
    innodb_undo_log_truncate 策略优化,支持更细粒度的 undo 日志管理;CHECK TABLE EXTENDED 增强空间索引校验,确保 GIS 数据的几何完整性。

3. 复制与高可用性改进

  • 智能重试机制与 GTID 增强
    SOURCE_RETRY_COUNT 默认值从 3 提升至 10,减少网络波动导致的复制中断;支持标记 GTIDs(格式为 UUID:TAG:NUMBER),便于区分事务组(需 TRANSACTION_GTID_TAG 权限),提升复杂集群的故障排查效率。
  • 克隆插件兼容性放宽
    允许同系列不同点版本间的克隆(如 8.4.0 与 8.4.14),打破旧版必须完全版本匹配的限制,简化滚动升级流程。

4. 权限管理与开发工具链升级

  • 细粒度权限控制
    新增 FLUSH_PRIVILEGESOPTIMIZE_LOCAL_TABLE 权限,避免 SUPER 权限滥用;SHOW PARSE_TREE 支持以 JSON 格式查看 SQL 解析树,辅助调试复杂查询。
  • 备份工具兼容性增强
    mysqldump --output-as-version 支持生成兼容旧版本(如 5.7)的 SQL 文件,解决跨版本迁移的语法冲突;启动/关闭日志细化 InnoDB 初始化、插件加载等阶段信息,加速故障定位。

5. 查询优化与统计信息改进

  • 子查询优化扩展
    优化器支持将更多量化比较谓词(如 >ANY<ALL)转换为派生表连接,且优化范围从 WHERE 子句扩展到 SELECT 子句,复杂嵌套查询性能平均提升 15%-20%。
  • 自动更新直方图
    新增 AUTO UPDATE 选项(默认启用),统计信息更新频率与数据变更频率动态对齐,避免陈旧统计信息导致的执行计划偏差。

二、废弃功能:这些“过时”特性即将被移除

1. 系统变量与配置选项

  • group_replication_allow_local_lower_version_join
    允许低版本节点加入组复制集群的功能被废弃(计划在未来版本移除),推荐通过克隆插件实现版本统一的集群部署。
  • expire_logs_days 替代为 binlog_expire_logs_seconds
    旧版基于天数的二进制日志过期配置被弃用,改用更精确的秒级控制(binlog_expire_logs_seconds 默认 604800 秒,即 7 天),需手动迁移配置。
  • --character-set-client-handshake 兼容性选项
    用于兼容旧版客户端字符集协商的选项被标记为废弃,未来版本将强制使用标准化字符集握手流程。

2. 复制语法与函数

  • WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS() 函数
    建议改用更灵活的 WAIT_FOR_EXECUTED_GTID_SET(),前者将在后续版本中移除。
  • 权限通配符模糊匹配调整
    数据库权限中的 %_ 通配符未来将视为字面量(不再支持模糊匹配),当前版本默认启用严格模式(需通过 sql_mode=NO_AUTO_CREATE_USER 禁用旧逻辑)。

3. 非标准外键限制

启用 restrict_fk_on_non_standard_key=ON(默认),禁止在非唯一键或部分键上创建外键(如仅引用主键部分列),需显式设置 --restrict-fk-on-non-standard-key=OFF 才能兼容旧版非标准外键设计。

三、移除功能:这些特性已从 8.4 中彻底删除

1. 系统变量与选项

  • binlog_transaction_dependency_tracking
    默认值为COMMIT_ORDER,可取值 WRITESETWRITESET_SESSION,在 MySQL 8.0.35 和 MySQL 8.2.0 中已被弃用,MySQL 8.4.0 中正式移除。但目前还没有计划替换这个变量或其功能,因为它已成为服务器的内部功能:现在,当使用多线程复制时,源 mysqld 总是使用写入集来生成二进制日志的依赖关系信息;这与以前版本的 MySQL 将 binlog_transaction_dependency_tracking 设置为 WRITESET 的效果相同。

  • default_authentication_plugin 简化认证配置
    替代为更灵活的 authentication_policy,旧变量不再生效,需通过 --default-authentication-plugin 直接指定认证插件(如 caching_sha2_password)。

  • --ssl--admin-ssl 选项
    改用 --tls-version--admin-tls-version 控制加密协议版本,旧选项不再识别。

2. 复制术语与语法重构

  • 统一复制术语为“源-副本”模型
    CHANGE MASTER TO 改为 CHANGE REPLICATION SOURCE TOSHOW SLAVE STATUS 改为 SHOW REPLICA STATUS,旧语法报错并强制要求迁移。
  • 移除 MASTER_* 系列选项
    MASTER_HOSTMASTER_PASSWORD 等旧版参数被 SOURCE_HOSTSOURCE_PASSWORD 替代,需更新所有复制配置文件及客户端工具。

3. 插件与工具调整

  • authentication_fido 插件淘汰
    替换为支持 FIDO2 标准的 authentication_webauthn,提供更强的无密码认证能力,旧插件不再随服务端分发。
  • mysql_ssl_rsa_setup 工具移除
    服务器启动时自动生成 SSL/RSA 证书和密钥,无需手动调用工具,避免证书管理混乱。

4. 语法与数据类型限制

  • 禁止 AUTO_INCREMENT 用于浮点列
    创建 FLOAT/DOUBLE 类型字段并添加 AUTO_INCREMENT 修饰符时会直接报错,仅支持整数类型自增。
  • FLUSH HOSTS 语句废弃
    改用 TRUNCATE TABLE performance_schema.host_cache 清理主机缓存,旧语句不再执行任何操作。

四、升级建议:平稳过渡的关键步骤

  1. 兼容性评估

    • 检查是否依赖被移除的复制语法(如 MASTER_*)、废弃的系统变量(如 expire_logs_days)或非标准外键设计,提前修改代码和配置。
    • 使用 SHOW WARNINGS 或慢日志监控升级后潜在的语法报错,重点关注权限通配符和认证插件的兼容性问题。
  2. 分阶段测试

    • 在预生产环境验证 mysqldump --output-as-version 的备份恢复能力,确保跨版本兼容性;测试容器环境下 InnoDB 的自动资源分配是否符合预期。
    • 针对复制集群,验证标记 GTID 和组复制主选举策略的稳定性,避免升级后出现复制延迟或脑裂问题。
  3. 安全与权限适配

    • 若需保留 mysql_native_password 认证,显式启用并限制仅旧版客户端使用;优先迁移至 LDAP/Kerberos 等更安全的认证方式。
    • 按最小权限原则分配 FLUSH_PRIVILEGESOPTIMIZE_LOCAL_TABLE 权限,减少 SUPER 权限滥用风险。

总结:8.4 是“渐进式升级”而非“颠覆式变革”

MySQL 8.4 的核心价值在于对云原生、容器化环境的深度适配(如 InnoDB 动态资源分配、克隆插件兼容性),以及细粒度权限管理和复制可靠性的增强。然而,废弃和移除功能带来的迁移成本不可忽视,尤其是依赖旧版复制语法、非标准外键或特定认证方式的用户,需投入精力调整架构。

推荐升级场景

  • 正在部署云原生数据库集群的企业,需利用 InnoDB 容器感知和克隆插件提升运维效率;
  • 重视权限安全和审计的团队,可借助新增权限和认证策略强化管控;
  • 使用复杂子查询或需要跨版本迁移的开发者,子查询优化和 mysqldump 兼容性特性值得升级。

谨慎升级场景

  • 依赖 mysql_native_password 认证且无法快速迁移客户端的旧系统;
  • 大量使用非标准外键或旧版复制语法(如 MASTER_*)且尚未完成代码改造的项目。

随着数据库技术向分布式、智能化演进,MySQL 8.4 更像是一次“稳扎稳打的补丁”,而非“突破性创新”。建议结合自身架构需求,优先在非核心业务验证升级效果,确保新旧功能平滑过渡。

MySQL8.4.jpg

参考链接

https://dev.mysql.com/doc/refman/8.4/en/mysql-releases.html
https://dev.mysql.com/doc/relnotes/mysql/8.4/en/news-8-4-0.html
https://dev.mysql.com/doc/relnotes/mysql/8.4/en/news-8-4-1.html
https://dev.mysql.com/doc/relnotes/mysql/8.4/en/news-8-4-2.html
https://dev.mysql.com/doc/relnotes/mysql/8.4/en/news-8-4-3.html
https://dev.mysql.com/doc/relnotes/mysql/8.4/en/news-8-4-4.html
https://dev.mysql.com/doc/relnotes/mysql/8.4/en/news-8-4-5.html

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

❤️ 欢迎关注我的公众号【JiekeXu DBA之路】,一起学习新知识!
——————————————————————————
公众号:JiekeXu DBA之路
墨天轮:https://www.modb.pro/u/4347
CSDN :https://blog.csdn.net/JiekeXu
ITPUB:https://blog.itpub.net/69968215
腾讯云:https://cloud.tencent.com/developer/user/5645107
——————————————————————————

最后修改时间:2025-04-21 09:46:05
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论