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不能都解决所有问题。 有兴趣联系微:JiekeXu_DBA 

内部知识库正在筹建中,不止有 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 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. 1. 兼容性评估  

  • • 检查是否依赖被移除的复制语法(如 MASTER_*)、废弃的系统变量(如 expire_logs_days)或非标准外键设计,提前修改代码和配置。

  • • 使用 SHOW WARNINGS 或慢日志监控升级后潜在的语法报错,重点关注权限通配符和认证插件的兼容性问题。

  • 2. 分阶段测试  

    • • 在预生产环境验证 mysqldump --output-as-version 的备份恢复能力,确保跨版本兼容性;测试容器环境下 InnoDB 的自动资源分配是否符合预期。

    • • 针对复制集群,验证标记 GTID 和组复制主选举策略的稳定性,避免升级后出现复制延迟或脑裂问题。

  • 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
    优快云 :https://blog.youkuaiyun.com/JiekeXu
    ITPUB:https://blog.itpub.net/69968215
    腾讯云:https://cloud.tencent.co/developer/user/5645107
    ——————————————————————————

    图片

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

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

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

    2021 年公众号历史文章合集

    图片
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值