MySQL 9.0 正式发行Innovation创新版已支持向量

从 MySQL 8.1 开始,官方启用了新的版本模型:MySQL 创新版 (Innovation) 和长期支持版 (LTS)。 根据介绍,两者的质量都已达到可用于生产环境级别。区别在于: 如果希望尝试最新的功能和改进,并喜欢与最新技术保持同步,那么 MySQL 创新版本可能最适合您。 该版本非常适合在快节奏的开发环境中工作的开发人员和 DBA,其中有高水平的自动化测试和现代的持续集成技术,可以实现更快的升级周期。 如果您的环境需要继续保持已经固定的行为,那么 LTS 版本就是您的不二之选。这些版本仅包含必要的修复,因此可以减少数据库软件行为变更带来的风险。
在这里插入图片描述

2024年7月1日,MySQL的创新版MySQL 9.0 GA,如果您还不清楚什么是创新版,请查阅MySQL的创新版(Innovation)与长期稳定版(LTS)。

这个版本里面有哪些变化。

  • “mysql_native_password”插件已经被删除,如果客户端软件不具备“CLIENT_PLUGIN_AUTH”能力将无法连接服务器。为了向后兼容,“mysql_native_password”在9.0版本的客户端上仍然可以连接到早期版本的MySQL服务器。
  • SQL语句“CREATE EVENT”、“ ALTER EVENT”,及 “DROP EVENT”可以作为PREPARE执行。
  • 由包含“IGNORE”关键字的语句忽略产生的错误“ER_SUBQUERY_NO_1_ROW”已从错误列表中删除。
  • Performance Schema中增加了两个表:
    variables_metadata:提供了关于系统变量的一般信息。这些信息包括MySQL服务器识别的每个系统变量的名称、作用域、类型、范围(如适用)和描述。
  • global_variale_attributes:提供了关于服务器分配给全局系统变量的属性值对的信息。
  • EXPLAIN ANALYZE的输出结果可以用JSON格式保存,语法如下:
    EXPLAIN ANALYZE FORMAT=JSON INTO @variable select_stmt

Windows版本的相关改进

使用Windows版的用户可以在这个版本里面获得大量的体验改善,修复了Windows安装向导中大量的错误。

MySQL Shell

更新并简化了InnoDB ReplicaSet中锁的处理,不再需要多个每个实例的锁。
支持部分或完全解散 ClusterSet。
支持在所有能够访问的成员上执行“.execute().”。
升级检查工具支持对外键参照的检查。

MySQL9.0支持的平台

9.x 8.4
长期支持
8.0
操作系统 建筑学
Oracle Linux / Red Hat / CentOS / Rocky Linux
Oracle Linux 9 / Red Hat Enterprise Linux 9 / Rocky Linux 9 x86_64,arm64
Oracle Linux 8 / Red Hat Enterprise Linux 8 / CentOS 8 / Rocky Linux 8 x86_64,arm64
Oracle Linux 7 / Red Hat Enterprise Linux 7 / CentOS 7 x86_64,arm64
Oracle Linux 6 / Red Hat Enterprise Linux 6 / CentOS 6 x86_32、x86_64
Oracle Solaris
Solaris 11(更新 4+) SPARC_64
Canonical
Ubuntu 24.04 LTS x86_64
Ubuntu 22.04 LTS x86_64
Ubuntu 20.04 LTS x86_64
SUSE
SUSE 企业版 Linux 15 / OpenSUSE 15 (15.5) x86_64
SUSE Enterprise Linux 12(12.5+) x86_64
Debian
Debian GNU/Linux 12 x86_64
微软 Windows 服务器
Microsoft Windows 2022 服务器 x86_64
微软 Windows 2019 服务器 x86_64
Microsoft Windows 2016 服务器 x86_64
微软Windows
微软 Windows 11 x86_64
微软 Windows 10 x86_64
苹果
macOS 14 x86_64,arm64
macOS 13 x86_64,arm64

MySQL 9.0 中已弃用的功能

以下功能在 MySQL 9.0 中已弃用,并且可能会在未来的系列中删除。如果 MySQL 更新说明中有显示替代方案,则你们应更新应用程序并使用它们。

对于使用 MySQL 9.0 中已弃用且已在更高 MySQL 版本中删除的功能的应用程序,从 MySQL 9.0 源复制的语句到运行更高版本的副本时,语句可能会执行失败,或者可能对源和副本产生不同的影响。为了避免此类问题,应修改使用 9.0 中已弃用功能的应用程序以避免这些问题,并尽可能使用替代方案。以下内容为弃用功能,

性能模式 variables_info 表列。 性能模式变量信息表的 MIN_VALUE 和 MAX_VALUE 列现已弃用,并且可能会在未来的 MySQL 版本中删除。相反请使用 Variables_metadata 表中具有相同名称的列(请参阅上文 1.3 章节)。

MySQL 9.0 中删除的功能

以下功能已过时并已在 MySQL 9.0 中删除。如果 MySQL 更新说明中有显示替代方案,则你们应更新应用程序并使用它们。

对于使用 MySQL 9.0 中删除的功能的 MySQL 8.4 应用程序,从 MySQL 8.4 源复制到 MySQL 9.0 副本时,语句可能会执行失败,或者可能对源和副本产生不同的影响。为了避免此类问题,应修改使用 MySQL 9.0 中删除的功能的应用程序以避免这些问题,并尽可能使用替代方案。

mysql_native_password 插件。mysql_native_password 身份验证插件已在 MySQL 8.0 中弃用,已被删除。服务器现在拒绝来自不具有 CLIENT_PLUGIN_AUTH 功能的旧客户端程序的 mysql_native 身份验证请求。
由于此更改,以下服务器选项和变量也已被删除:

–mysql-native-password 服务器选项
–mysql-native-password-proxy-users 服务器选项
default_authentication_plugin 服务器系统变量
给大家介绍一下 mysql_native_password 插件。

mysql_native_password 介绍

从 MySQL 8.0.4 开始,MySQL 默认身份验证插件从 mysql_native_password 改为 caching_sha2_password 。相应地,libmysqlclient 也使用 caching_sha2_password 作为默认的身份验证机制。

删除起因

在这之前 MySQL 5.6/5.7 使用的默认密码插件是 mysql_native_password。mysql_native_password 的特点是不需要加密的连接。该插件验证速度特别快,但是不够安全,因为,mysql_native_password 使用的是于 SHA1 算法,NIST(美国国家标准与技术研究院)在很早之前就已建议停止使用 SHA1 算法,因为 SHA1 和其他哈希算法(例如 MD5)容易被破解。

其实从 MySQL 5.6 开始就引入了更安全的认证机制:ha256_password 认证插件。它使用一个加盐密码(salted password)进行多轮 SHA256 哈希(数千轮哈希,暴力破解更难),以确保哈希值转换更安全。但是,建立安全连接和多轮 hash 加密很耗费时间。虽然安全性更高,但是验证速度不够快。

改进

MySQL 试图结合二者的优点。于是在 MySQL 8.0.3 版本引入了一个新的身份验证插件 caching_sha2_password ,作为sha256_password的代替方案,在sha256_password 的基础上进行了改进补上了短板,既解决安全性问题又解决性能问题。与此同时 sha256_password将退出时代的浪潮。MySQL 预计在未来版本中将其删除。使用 sha256_password 进行身份验证的 MySQL 账户建议转为 caching_sha2_password。

其实 MySQl 早就想在 8.0 版本中替换到 mysql_native_password 插件,到了 9.0 版本直接删除 mysql_native_password 功能其实提前跟大家打过招呼。

总结

MySQL 9.0 版本新增了 EXPLAIN 分析 JSON 输出、DDL 语句新增 Event 语法、性能模式新添加了两个新表,弃用了老版本中的 variables_info 表,删除了 mysql_native_password 认证插件。

这些更新没有带来大的功能改动,对于大多数应用程序来说影响很小,没有当年 MySQL 5.7 发布时带来的 innodb 存储引擎那种给人带来的激动感,更新说明中也没有强调性能改进(估计性能对比 8.4 版本提升不大)。不过这也说明关系型数据库 MySQL 如今的功能以及稳定性方面都已经越来越完善。

相关推荐

  1. Vue 3.4 正式发布,带来多项更新

    2024-07-12 22:30:02       52 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 22:30:02       50 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 22:30:02       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 22:30:02       43 阅读
  4. Python语言-面向对象

    2024-07-12 22:30:02       54 阅读

热门阅读

  1. C++ 项目实践课设 图书馆管理系统

    2024-07-12 22:30:02       14 阅读
  2. 计算机网络 5.6网桥与交换机

    2024-07-12 22:30:02       11 阅读
  3. 安全开发--多语言基础知识

    2024-07-12 22:30:02       15 阅读
  4. Requests库如何用于发送HTTP请求

    2024-07-12 22:30:02       21 阅读
  5. Spring MVC中Restful风格引入

    2024-07-12 22:30:02       17 阅读
  6. 【25届秋招备战C++】算法篇-排序算法合集

    2024-07-12 22:30:02       14 阅读
  7. 国道省道乡道见闻

    2024-07-12 22:30:02       18 阅读
  8. 解锁深度学习黑箱:注意力机制的神秘力量

    2024-07-12 22:30:02       18 阅读
  9. LLM生成nvidia-h100-tensor-core-hopper-whitepaper.pdf摘要

    2024-07-12 22:30:02       17 阅读
  10. 介绍一下Feed流

    2024-07-12 22:30:02       17 阅读
  11. Influxdb v2.x的基本概念

    2024-07-12 22:30:02       17 阅读