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

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

作者 | JiekeXu
来源 |公众号 JiekeXu DBA之路(ID: JiekeXu_IT)
如需转载请联系授权 | (个人微信 ID:JiekeXu_DBA)
大家好,我是JiekeXu,江湖人称“强哥”,青学会MOP技术社区联合创始人,荣获Oracle ACE Pro称号,墨天轮MVP,墨天轮年度“墨力之星”,拥有Oracle  OCP/OCM 认证,MySQL 5.7/8.0 OCP认证以及KCA、KCP、KCSM、PCA、PCTA、OBCA等众多国产数据库认证证书,今天和大家一起来看看 MySQL 8.4新特性深度解析:功能增强、废弃项与移除项全指南。欢迎点击下方“JiekeXu DBA之路”公众号名片可关注我的微信公众号,然后点击右上方三个点“设为星标”置顶,更多干货文章才能第一时间推送给你!后台回复【加群】,添加我个人微信拉你进群交流学习。


DataDocks  数据码头 💬
最近联合几个 Oracle ACE 技术专家  开通了一个付费微信群,都是具有10多年金融、医疗、制造业10年以上的一线专家,坑位费 399/人,无限期。加群后会有一些福利(分享各类技术文档,干货资源,AWR解答,内部文档代查,如何安装补丁方法非tire级别),更有特邀嘉宾会定期在群内直播,共建数据库内容知识库!有问题我们尽量都解答,毕竟399不能都解决所有问题。 有兴趣联系微:ywu0613
内部知识库正在筹建中,不止有 Oracle! 
算算下一顿馆子还多少钱呢?找个学习氛围好的技术群还是划算的!!

前  言

长周期支持版本 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

从上面可以看出,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_PRIVILEGES
     和 OPTIMIZE_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

    基于写入集的事务依赖跟踪功能被移除,不再支持 WRITESET
     和 WRITESET_SESSION
     模式,统一采用 COMMIT_ORDER
     模式提升复制性能。
  • • 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 TO
    SHOW SLAVE STATUS
     改为 SHOW REPLICA STATUS
    ,旧语法报错并强制要求迁移。
  • • 移除 MASTER_*
     系列选项

    MASTER_HOST
    MASTER_PASSWORD
     等旧版参数被 SOURCE_HOST
    SOURCE_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. 1. 兼容性评估  
    • • 检查是否依赖被移除的复制语法(如 MASTER_*
      )、废弃的系统变量(如 expire_logs_days
      )或非标准外键设计,提前修改代码和配置。
    • • 使用 SHOW WARNINGS
       或慢日志监控升级后潜在的语法报错,重点关注权限通配符和认证插件的兼容性问题。
  2. 2. 分阶段测试  
    • • 在预生产环境验证 mysqldump --output-as-version
       的备份恢复能力,确保跨版本兼容性;测试容器环境下 InnoDB 的自动资源分配是否符合预期。
    • • 针对复制集群,验证标记 GTID 和组复制主选举策略的稳定性,避免升级后出现复制延迟或脑裂问题。
  3. 3. 安全与权限适配  
    • • 若需保留 mysql_native_password
       认证,显式启用并限制仅旧版客户端使用;优先迁移至 LDAP/Kerberos 等更安全的认证方式。
    • • 按最小权限原则分配 FLUSH_PRIVILEGES
       和 OPTIMIZE_LOCAL_TABLE
       权限,减少 SUPER
       权限滥用风险。

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

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

推荐升级场景

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

谨慎升级场景

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

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


参考链接

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.co/developer/user/5645107
——————————————————————————


2024 年公众号 JiekeXu DBA之路历史文章合集

2023 年公众号 JiekeXu DBA之路历史文章合集

2022 年公众号 JiekeXu DBA之路历史文章合集

2021 年公众号历史文章合集

文章转载自青年数据库学习互助会,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论