MySQL 9.6.0 正式版已发布。这一版本并非简单的修补升级,而是在审计系统、GTID复制机制和安全防护等关键领域实现了重构式改进。同时,大量历史遗留缺陷也得到修复。可以说,这是MySQL针对高并发、高可用及合规需求的一次全面自我强化。
一、核心能力跃升:性能与可维护性双向突破
1. 审计日志模块化重构,运维响应更敏捷
审计日志方面,MySQL 9.6.0 进行了深度调整。原先一体化的审计模块被拆解为轻量级、可插拔的专用组件,使得审计功能的部署与生命周期管理更加便捷。用户可按需定制日志输出路径、序列化格式、内存缓冲区容量等关键参数。特别需要注意的是,系统变量 audit_log_rotate_on_size 的修改权限已严格限定为仅具备 AUDIT_ADMIN 权限的账户才能操作,权限隔离更加扎实。
2. GTID 复制逻辑全面重写,分布式事务一致性更强
本次版本在GTID机制上投入大量精力。GTID集合的内部表示结构被完全重新设计,彻底替代了原有实现。新结构使GTID相关逻辑更清晰、更现代化,处理效率也显著提升。这对于跨节点事务追踪、故障恢复以及多活架构下的数据一致性而言,提供了更可靠的底层支撑。
3. InnoDB 存储引擎持续打磨,可靠性再上台阶
作为MySQL最核心的存储引擎,InnoDB在该版本中实现了多项关键增强:
- 重做日志(Redo Log)的错误提示中新增了当前LSN(Log Sequence Number)及日志空间使用详情,
MONITOR视图也同步扩展了对应字段。遇到故障时,定位效率显著提升。 - 修复了一个较为隐蔽的问题:服务器意外重启后,若XA事务处于PREPARED状态,可能发生非法状态迁移。该问题已被彻底解决,不再触发断言或非预期回滚。
- 优化了无主键表隐式rowid的生成策略,降低了锁竞争,插入吞吐量得到提升。
- 解决了事务提交后,undo日志残留引发后续查询异常的问题。同时,修复了
FLUSH TABLE FOR EXPORT与DROP TABLE、DML操作并发执行时可能出现的死锁路径。
4. 原生容器感知能力落地,资源调度更精准
新增了 container_aware 启动参数。MySQL实例启动时能自动探测所在容器环境的CPU核心数和内存上限,并据此动态调整内部线程池、缓冲区大小等资源配置策略。在Kubernetes、Docker等容器平台上,资源利用更加优化,避免了因配置僵化导致的性能瓶颈或资源浪费。
二、安全体系加固:合规适配与访问控制双强化
1. 哈希算法组件化隔离,满足等保与行业规范要求
已被标记为废弃的 MD5() 和 SHA1() SQL 函数,此次被迁移至独立组件 classic_hashing 中。该组件默认不启用,用户可根据实际业务兼容性需求决定是否安装。这样既保障了旧系统的平滑过渡,又有效规避了使用不符合现行密码学标准的哈希算法带来的合规风险,一举两得。
2. 认证流程精细化调优,错误提示统一化、标准化
- 当客户端尝试连接一个不存在的用户账号时,现在统一返回标准错误信息 “Access denied for user”。无论用户名长度或版本如何演变,提示信息保持一致。
- 修正了创建同名用户时报错信息模糊的问题。同时,修复了若干与身份验证模块相关的安全漏洞,登录鉴权环节的整体健壮性得到提升。
3. 账户锁定状态可视化,安全审计更透明
Performance Schema 新增了 TEMPORARY_ACCOUNT_LOCKS 表,可实时查询当前被临时锁定的用户账户列表。HOST_CACHE 表也新增了两个统计列,分别记录因永久锁定与临时锁定所触发的认证失败次数。DBA 能快速识别异常登录行为及潜在的暴力破解风险。
三、开发者体验升级:开发协同与日常运维更高效
1. JSON Duality 视图支持细粒度 DML 权限标签,兼容 Oracle 语义
创建 JSON duality 视图时,现在可为底层每张基础表显式声明允许执行的 DML 类型,例如 INSERT / UPDATE / DELETE。也可通过 NO INSERT 等限制性标签禁用特定操作。支持多种标签组合,可在单视图内实现不同表之间的差异化写入控制策略。关键在于,语法与行为均与 Oracle Database 高度一致。
2. 日志体系能力拓展,可观测性进一步增强
- GCS/XCOM 协议跟踪日志条目中新增了毫秒级时间戳字段,分布式事务链路追踪和性能瓶颈分析时,能更精确地定位问题。
- 慢查询日志(Slow Query Log)和通用查询日志(General Query Log)已全面接入遥测日志(Telemetry Log)框架。通过
setup_loggers表可进行集中开关和级别配置,统一纳入企业级监控平台。
3. MySQL Shell 扩展能力开放,AI 与数据工具链深度融合
Option Tracker 功能已覆盖 MySQL Shell 命令行客户端以及 VS Code 插件版的 MySQL Shell。新增了多个运行时状态变量,可统计自然语言转 SQL、HeatWave AI 查询助手、数据导入导出等高频操作的调用频次与成功率。团队能更清楚地掌握工具的使用趋势和效能瓶颈。
4. 配置管理工具持续优化,交互体验更友好
- MySQL Configurator 已能自动识别并剥离配置过程中输入的密码字符串首尾引号(包括双引号、单引号及反引号),避免因格式错误导致连接失败。
- 修复了
mysqlx_port变量无法持久化写入配置文件的问题。同时,解决了服务器启动时未按预期应用文件权限设置的缺陷。 - 重构了密码更新逻辑,敏感信息变更过程中的等待时间大幅缩短,运维响应速度更快。
四、其他重要改进与缺陷修复
1. 第三方依赖升级,底层安全基线全面提升
- OpenSSL 组件升级至 3.0.18 版本(适用于自带 OpenSSL 的发行包),TLS 加密强度和协议兼容性增强。
- OpenTelemetry C++ SDK 升级到 1.23.0,分布式追踪上下文传播和指标采集能力进一步完善。
2. SQL 语法与查询优化器增强
GROUPING()函数现在支持在不含ROLLUP的普通聚合查询中直接使用。- 修复了
COALESCE()/ANY_VALUE()与 JSON 函数混用时可能触发的断言崩溃问题。同时,修正了负数年份(如公元前日期)在DATETIME类型解析中校验逻辑不一致的缺陷。 - 解决了正则表达式(REGEXP)查询作为预编译语句执行时响应延迟严重的问题。
3. 超过 40 项 Bug 修复,覆盖全链路关键场景
此次更新共修复了 40 多个已知问题,涉及查询执行引擎、逻辑备份工具(mysqldump / mysqlpump)、Performance Schema 数据采集精度、配置文件解析逻辑等多个核心模块。举几个典型例子:
- 修复了预处理语句的实际 SQL 文本及其摘要信息无法被
Performance Schema正确捕获的问题。 - 解决了数据库名称中含反斜杠(
)时,mysqldump --routines参数未能正确添加转义引号的问题。 - 修复了 Windows 平台下启用
--skip-grant-tables启动选项后,MySQL 服务进程偶发无法正常初始化的问题。
