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

安全是数据库的基石,MySQL 9.5.0在账户权限、认证加密、数据传输三方面做了关键优化,尤其适合对权限管控要求高的企业场景。
新增系统变量
activate_mandatory_roles(默认开启),用于单独激活“强制角色”,与原有
activate_all_roles_on_login(登录激活所有角色)形成互补逻辑:
activate_all_roles_on_login开启:忽略
activate_mandatory_roles,强制角色+已授权角色全部激活;activate_all_roles_on_login关闭、
activate_mandatory_roles开启:除账户默认角色外,额外激活强制角色;此前角色激活要么“全激活”要么“仅默认”,新增“强制角色”后,可针对核心权限(如数据只读、审计日志查看)设置“必须生效”,即使账户未主动授权,也能确保合规性(如金融场景的“审计角色强制启用”)。
密码哈希强度升级:
caching_sha2_password_digest_rounds 默认值从 5000 提升至 10000,迭代次数增加意味着暴力破解难度呈指数级上升,同时兼容原有
caching_sha2_password 认证插件,无需修改应用连接逻辑。
LDAP认证废弃旧算法:
SCRAM-SHA-1认证方法被标记为废弃,默认改用更安全的
SCRAM-SHA-256 ,对应变量
authentication_ldap_sasl_auth_method_name 默认值同步更新,需注意旧 LDAP 集成场景的兼容性适配。
密钥环功能修复:解决了密钥环组件无法读取短路径配置文件、通用密钥函数处理无效参数异常的问题,避免加密数据因配置问题导致的访问失败。
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、线程池、二进制日志等核心组件引入“自动配置”逻辑,降低运维成本的同时,让性能更贴合硬件资源。
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 手动判断。
线程池插件新增“硬件自动配置”功能,可根据服务器 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倍设置线程池大小),对运维经验要求高。自动配置后,新手也能快速搭建高性能线程池,减少“参数调错导致的性能瓶颈”。
binlog_transaction_dependency_history_size(事务依赖历史大小)的默认值从 25000 提升至 100 万,最大值从 100 万提升至 1000 万。
该参数控制二进制日志中存储的“事务依赖关系”数量,容量不足会导致依赖信息丢失,进而影响主从复制的并行回放效率。此次扩容后,高并发场景(如秒杀、大促)下的复制延迟问题将显著缓解。
除了基础能力优化,MySQL 9.5.0 还在 JSON 处理、JavaScript 支持、诊断工具等方面新增实用功能,覆盖更多业务场景。
JSON 二元视图是 MySQL 用于“关系表与JSON数据双向映射”的功能,此次修复了5个关键问题,确保业务可用性:
derived_merge=off下的行为,减少逻辑不一致。结果集大小限制提升:SQL 调用 JS 存储过程时的结果集上限提高,支持更大数据量的处理(如批量数据计算)。
JS 语法同步最新标准:MLE 的 JavaScript 支持升级至 ECMAScript 2025 规范,可使用箭头函数、解构赋值等新语法,开发存储过程更灵活;
内存自动分配:
mle.memory_max(MLE最大内存)默认按“物理内存 5%”计算,且限制在 0.4GB~32GB 之间,避免手动设置不当导致内存溢出或资源浪费。
新增客户端工具
mysqldm(MySQL Diagnostic Monitor),可自动执行预定义查询,收集服务器诊断信息(如进程列表、锁状态、性能指标),并以JSON格式存储。
支持自定义输出目录、采集迭代次数、迭代间隔,方便 DBA 将信息提交给 Oracle Support 快速定位问题,减少“手动执行多条 SQL 收集信息”的繁琐操作。
升级前必须关注“参数变更”与“废弃与移除”列表,避免因依赖旧功能导致升级失败。
explain_format:从
TRADITIONAL 更改为
TREEexplain_json_format_version:从 1 更改为 2。gtid_mode 的默认值已更改为 ON。此外,
enforce_gtid_consistency 的默认值也更改为 ON。innodb_change_buffering 的默认值为 ALL。这改进了二级索引更新的处理。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)。keyring_okv:替换为
keyring_kmip组件,后者支持 KMIP 1.1 协议(兼容 Oracle Key Vault、Gemalto SafeNet 等主流密钥管理产品)。SCRAM-SHA-1认证方法:建议尽快迁移至
SCRAM-SHA-256。MySQL 9.5.0 作为创新版本,核心亮点是“自动化”与“安全性”——线程池、InnoDB日志线程、MLE内存的自动配置降低运维成本,复制加密、强制角色、密码强度升级强化安全防护,同时新增 mysqldm 工具提升问题排查效率。对于开发者来说,MySQL 9.5 的 JSON 支持增强、查询优化和性能提升无疑是最值得关注的特性之一。
对于企业级用户,让我们静待明年 2026 Q2 的 MySQL 9.7.x LTS 版本。
Have a nice day ~ ☕
🌻 往期精彩 ▼
– / END / –
👉 欢迎关注我的视频号

👉 这里有得聊
如果对国产基础软件(操作系统、数据库、中间件)感兴趣,可以加群一起聊聊。
关注微信公众号:少安事务所,后台回复[群],即可看到入口。
如果这篇文章为你带来了灵感或启发,请帮忙『 三连』吧,感谢!ღ( ´・ᴗ・` )~
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31492144/viewspace-3098255/ ,如需转载,请注明出处,否则将追究法律责任。