如期而至!MySQL 9.5.0 创新版本发布

来源:这里教程网 时间:2026-03-01 18:33:04 作者:

这次没有跳票。回顾 MySQL 9.4.0 发布 。2025 年 10 月 21 日, MySQL 9.5.0 创新版本发布。本次发布带来权限管控强化、性能自动优化、安全加密升级等核心更新,同时修复数十个稳定性问题。同步更新的还有 MySQL 8.4.7MySQL 8.0.44。需要注意的是,MySQL 8.0.x 将于 2026 年第二季度结束生命周期(EOL),建议大家尽早考虑升级到 MySQL 8.4.x LTS。

一、安全与权限:更精细的管控,更严格的防护

安全是数据库的基石,MySQL 9.5.0在账户权限、认证加密、数据传输三方面做了关键优化,尤其适合对权限管控要求高的企业场景。

1. 账户角色管理:新增“强制角色”激活机制

新增系统变量

activate_mandatory_roles
(默认开启),用于单独激活“强制角色”,与原有
activate_all_roles_on_login
(登录激活所有角色)形成互补逻辑:

activate_all_roles_on_login
开启:忽略
activate_mandatory_roles
,强制角色+已授权角色全部激活;
activate_all_roles_on_login
关闭、
activate_mandatory_roles
开启:除账户默认角色外,额外激活强制角色;
两者均关闭:仅激活账户默认角色。

此前角色激活要么“全激活”要么“仅默认”,新增“强制角色”后,可针对核心权限(如数据只读、审计日志查看)设置“必须生效”,即使账户未主动授权,也能确保合规性(如金融场景的“审计角色强制启用”)。

2. 认证加密:密码安全性与兼容性双提升

密码哈希强度升级:

caching_sha2_password_digest_rounds
默认值从 5000 提升至 10000,迭代次数增加意味着暴力破解难度呈指数级上升,同时兼容原有
caching_sha2_password
认证插件,无需修改应用连接逻辑。LDAP认证废弃旧算法:
SCRAM-SHA-1
认证方法被标记为废弃,默认改用更安全的
SCRAM-SHA-256
,对应变量
authentication_ldap_sasl_auth_method_name
默认值同步更新,需注意旧 LDAP 集成场景的兼容性适配。密钥环功能修复:解决了密钥环组件无法读取短路径配置文件、通用密钥函数处理无效参数异常的问题,避免加密数据因配置问题导致的访问失败。

3. 复制传输:默认开启全链路加密

replication(复制)连接默认启用加密,涉及三个核心参数变更:

CHANGE REPLICATION SOURCE TO
语句的
SOURCE_SSL
默认值改为 1(启用);
group_replication_ssl_mode
默认值改为
REQUIRED
(必须加密);
group_replication_recovery_use_ssl
默认值改为
ON
(恢复数据时加密)。

此前复制数据传输可能存在明文风险,此次默认加密后,主从节点、MGR 集群间的数据同步无需额外配置即可防护“中间人攻击”,尤其适合跨机房、云环境的部署场景。

二、性能优化:自动适配硬件,减少手动调参

MySQL 9.5.0 在 InnoDB、线程池、二进制日志等核心组件引入“自动配置”逻辑,降低运维成本的同时,让性能更贴合硬件资源。

1. InnoDB:日志写入线程智能开关

innodb_log_writer_threads
(日志写入线程)的默认值不再固定,而是根据“是否开启二进制日志”和“CPU核心数”动态判断:

二进制日志状态 CPU核心数条件 innodb_log_writer_threads 默认值
关闭(log_bin=OFF) ≤4核 OFF(单线程)
关闭(log_bin=OFF) >4核 ON(多线程)
开启(log_bin=ON) ≤32核 OFF(单线程)
开启(log_bin=ON) >32核 ON(多线程)

日志写入是 InnoDB 的性能瓶颈之一,多线程适合高并发场景,但会增加 CPU 开销。此次动态适配逻辑,能在“低配置机器避免资源浪费”和“高配置机器释放性能”之间找到平衡,无需 DBA 手动判断。

2. 线程池:硬件感知自动调参

线程池插件新增“硬件自动配置”功能,可根据服务器 VCPU 数量自动设置 5 个核心参数的默认值,同时校验并修正手动配置的错误参数(如参数值超出合理范围时自动调整,并记录警告日志):

thread_pool_size
(线程池大小)
thread_pool_max_transactions_limit
(单线程池最大事务数)
thread_pool_query_threads_per_group
(每组查询线程数)
thread_pool_algorithm
(调度算法)
thread_pool_max_unused_threads
(最大空闲线程数)

此前线程池参数需根据业务并发手动调整(如CPU核数2倍设置线程池大小),对运维经验要求高。自动配置后,新手也能快速搭建高性能线程池,减少“参数调错导致的性能瓶颈”。

3. 二进制日志:依赖历史容量大幅扩容

binlog_transaction_dependency_history_size
(事务依赖历史大小)的默认值从 25000 提升至 100 万,最大值从 100 万提升至 1000 万。该参数控制二进制日志中存储的“事务依赖关系”数量,容量不足会导致依赖信息丢失,进而影响主从复制的并行回放效率。此次扩容后,高并发场景(如秒杀、大促)下的复制延迟问题将显著缓解。

三、功能增强:JSON、多语言引擎、工具链升级

除了基础能力优化,MySQL 9.5.0 还在 JSON 处理、JavaScript 支持、诊断工具等方面新增实用功能,覆盖更多业务场景。

1. JSON 二元视图(JSON Duality Views):修复稳定性问题

JSON 二元视图是 MySQL 用于“关系表与JSON数据双向映射”的功能,此次修复了5个关键问题,确保业务可用性:

支持 AUTO_INCREMENT 列显式插入0值,符合业务习惯。 禁止删除嵌套子视图的“单例子节点”,避免意外数据丢失。 解决含子查询的 WHERE 条件创建视图时的断言失败问题(此前可能导致数据库崩溃)。 修复 UPDATE 语句执行时的“地址映射错误”,避免服务异常退出。 统一 DML 与 SELECT 查询在
derived_merge=off
下的行为,减少逻辑不一致。

2. 多语言引擎(MLE):JavaScript 支持升级+内存自动配置

结果集大小限制提升:SQL 调用 JS 存储过程时的结果集上限提高,支持更大数据量的处理(如批量数据计算)。 JS 语法同步最新标准:MLE 的 JavaScript 支持升级至 ECMAScript 2025 规范,可使用箭头函数、解构赋值等新语法,开发存储过程更灵活; 内存自动分配

mle.memory_max
(MLE最大内存)默认按“物理内存 5%”计算,且限制在 0.4GB~32GB 之间,避免手动设置不当导致内存溢出或资源浪费。

3. 新增诊断工具:mysqldm 快速收集问题信息

新增客户端工具

mysqldm
(MySQL Diagnostic Monitor),可自动执行预定义查询,收集服务器诊断信息(如进程列表、锁状态、性能指标),并以JSON格式存储。支持自定义输出目录、采集迭代次数、迭代间隔,方便 DBA 将信息提交给 Oracle Support 快速定位问题,减少“手动执行多条 SQL 收集信息”的繁琐操作。

四、兼容性与废弃:这些内容需要注意

升级前必须关注“参数变更”与“废弃与移除”列表,避免因依赖旧功能导致升级失败。

1. 系统变量默认值变化

explain_format
:从
TRADITIONAL
更改为
TREE
explain_json_format_version
:从 1 更改为 2。
为了默认启用增强复制功能,
gtid_mode
的默认值已更改为 ON。此外,
enforce_gtid_consistency
的默认值也更改为 ON。
从此版本开始,
innodb_change_buffering
的默认值为 ALL。这改进了二级索引更新的处理。

2. 已移除的功能

系统变量
group_replication_allow_local_lower_version_join
(MySQL 8.4.0 起废弃);
系统变量
replica_parallel_type
(MySQL 8.0.29 起废弃);
插件
semisync_master
(替换为
semisync_source
)、
semisync_slave
(替换为
semisync_replica
)。

3. 标记为废弃的功能

密钥环插件
keyring_okv
:替换为
keyring_kmip
组件,后者支持 KMIP 1.1 协议(兼容 Oracle Key Vault、Gemalto SafeNet 等主流密钥管理产品)。
SCRAM-SHA-1
认证方法:建议尽快迁移至
SCRAM-SHA-256

4. 编译与系统兼容性

编译要求:CMake 最低版本升至 3.17.5,需提前升级编译工具。 Solaris 系统:支持 Clang/GCC 编译,默认使用 OpenSSL 3,解决旧版本编译兼容性问题。 Windows 系统:修复共享内存连接失败、含转义字符的用户名创建异常、非默认端口升级时的误报等问题。

总结

MySQL 9.5.0 作为创新版本,核心亮点是“自动化”与“安全性”——线程池、InnoDB日志线程、MLE内存的自动配置降低运维成本,复制加密、强制角色、密码强度升级强化安全防护,同时新增 mysqldm 工具提升问题排查效率。对于开发者来说,MySQL 9.5 的 JSON 支持增强、查询优化和性能提升无疑是最值得关注的特性之一。对于企业级用户,让我们静待明年 2026 Q2 的 MySQL 9.7.x LTS 版本。 Have a nice day ~


???? 往期精彩 ▼

10个月净增百人!全球Oracle ACE突破600人 「合集」MySQL 8.x 系列文章汇总 星辰资讯 | Ti 星球新鲜事(2025.09) PostgreSQL 18 发布:令人兴奋的五大新特性 IvorySQL 4.6 发布:新增兼容 MongoDB 解决方案 金仓数据库 JDBC 透明读写分离实战 金仓数据库 DBA 必看的 19 张高清大图 崖山数据库 YAC 共享集群入门 新建群聊:崖山和ta的朋友们~ 一文带你了解 KWDB 数据库 KWDB MVP 计划正式启动!速来! 国产老兵“虚谷数据库”初探 如果国产中间件也参与国测,会有哪些厂商和产品入围 对话晨章数据CTO张桓:中国企业出海需要更优质的合作伙伴 腾讯云数据库家族扩容:TDSQL 与 AI 共生进化 向量数据库 VexDB 入门指南 SQLark 推出小百灵 AI,管理 PostgreSQL 18 更轻松

– / END / –???? 欢迎关注我的视频号

???? 这里有得聊如果对国产基础软件(操作系统、数据库、中间件)感兴趣,可以加群一起聊聊。 关注微信公众号:少安事务所,后台回复[群],即可看到入口。如果这篇文章为你带来了灵感或启发,请帮忙『 三连』吧,感谢!ღ( ´・ᴗ・` )~

相关推荐