MySQL 9.6.0 创新版已正式发布,此次更新带来了审计系统重构、GTID 复制优化、安全能力增强等一系列重磅特性,同时修复了大量已知问题,全方位提升数据库的稳定性与实用性。
一、核心功能升级:效率与灵活性双突破
1. 模块化审计日志系统,运维更高效
MySQL 9.6.0 对审计日志系统进行了架构重构,将原有的单体审计日志软件拆分为更小的独立组件,封装为 MySQL 专用组件。这一升级让审计日志的安装、管理和维护变得更加简单,用户可灵活配置日志输出路径、格式、缓冲区大小等参数。同时,系统变量audit_log_rotate_on_size的修改权限已调整为需AUDIT_ADMIN特权,进一步强化权限管控。
2. GTID 复制全新优化,事务管理更可靠
本次更新引入了全新的 GTID(全局事务 ID)集合数据结构,替换了旧有库,不仅让 GTID 处理逻辑更简洁现代,还显著提升了可维护性与性能,为分布式数据库环境下的事务一致性提供了更坚实的保障。
3. InnoDB 引擎持续精进,稳定性再升级
InnoDB 作为 MySQL 的默认存储引擎,此次迎来多项关键优化:
- 重做日志错误信息新增当前 LSN(日志序列号)和日志容量信息,MONITOR输出也同步增强相关详情,便于问题排查;
- 修复了服务器重启时 XA 预备事务状态异常转换的问题,避免断言失败或事务回滚风险;
- 优化无主键表的 rowid 生成逻辑,效率更高;
- 解决了事务提交后 undo 日志残留导致后续查询报错的问题,同时修复了 FLUSH TABLE FOR EXPORT 与 DROP TABLE、DML 操作并发时的死锁问题。
4. 容器感知能力上线,资源适配更智能
新增container_aware启动选项,让 MySQL 服务器能够自动识别容器环境下的 CPU 和内存资源限制,并主动适配,确保在容器化部署场景中资源利用更合理,避免资源溢出或浪费。
二、安全能力强化:合规与管控双保障
1. 哈希函数组件化,安全标准更合规
将MD5()和SHA1()这两个 deprecated 哈希算法的 SQL 函数迁移至独立的classic_hashing组件中。用户可根据业务需求选择是否安装该组件,既保证了现有应用的兼容性,又能避免使用不符合行业安全标准的哈希算法,提升数据安全合规性。
2. 认证机制优化,错误反馈更清晰
- 连接不存在的用户时,将统一返回 “Access denied for user” 错误,不再因用户名长度或 MySQL 版本不同出现不一致提示;
- 修复了创建重复用户名时错误信息模糊的问题,同时解决了部分认证相关漏洞,提升登录安全。
3. 账户锁定监控增强,风险可追溯
Performance_Schema新增TEMPORARY_ACCOUNT_LOCKS表,支持查看临时锁定的账户;HOST_CACHE表新增两个统计列,分别记录永久锁定和临时锁定账户导致的错误次数,便于管理员实时监控账户安全状态。
三、易用性提升:开发与运维更便捷
1. JSON duality 视图支持 DML 标签,权限控制更精细
现在可在定义 JSON duality 视图时,为每张表明确指定允许的 DML 操作(INSERT/UPDATE/DELETE),也可通过NO INSERT等限制标签禁用特定操作,支持多标签组合,实现单视图内的精细化写权限控制,且行为与 Oracle DB 兼容。
2. 日志功能升级,调试与监控更高效
- GCS/XCOM 跟踪文件条目新增时间戳,增强调试能力;
- 慢查询日志、通用日志已接入遥测日志,可通过setup_loggers表配置,便于集中监控。
3. MySQL Shell 支持扩展,工具链更完善
Option Tracker 功能现已支持 MySQL Shell 及 VS Code 版 MySQL Shell,新增多个状态变量,可跟踪自然语言转 SQL、HeatWave 聊天、数据导出导入等操作的使用情况,助力开发者掌握工具使用状态。
4. 配置工具优化,操作体验更流畅
- MySQL Configurator 现在能正确处理带引号的密码,自动去除首尾引号、反引号;
- 修复了mysqlx_port变量无法在配置文件中持久化、服务器文件权限未按指定配置应用等问题;
- 优化了密码更新流程,解决了操作耗时过长的问题。
四、其他重要更新与修复
1. 依赖组件升级
- OpenSSL 库更新至 3.0.18 版本(捆绑 OpenSSL 的平台),提升加密安全;
- opentelemetry-cpp 升级至 1.23.0 版本,增强可观测性。
2. 语法与优化器改进
- GROUPING() 函数现在可在无ROLLUP的查询中使用;
- 修复了coalesce/any_value函数与 JSON 操作结合时的断言失败问题,以及负数年份的 datetime 格式校验不一致问题;
- 解决了正则表达式查询作为预处理语句执行时耗时过长的问题。
3. 大量 Bug 修复
本次更新修复了超过 40 个已知问题,涵盖查询执行、备份恢复(mysqldump/mysqlpump)、Performance_Schema数据采集、配置文件解析等多个场景,例如:
- 修复了预处理语句的 SQL 语句及摘要无法被Performance_Schema捕获的问题;
- 解决了数据库名含反斜杠时,mysqldump--routines选项无法正确引号的问题;
- 修复了 Windows 平台下--skip-grant-tables启动时服务器可能无法启动的问题。
稿源:https://mp.weixin.qq.com/s/NHslSsOS0aiooOYf2nKu8Q