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 如今的功能以及稳定性方面都已经越来越完善。
相关文章:
MySQL 9.0 正式发行Innovation创新版已支持向量
从 MySQL 8.1 开始,官方启用了新的版本模型:MySQL 创新版 (Innovation) 和长期支持版 (LTS)。 根据介绍,两者的质量都已达到可用于生产环境级别。区别在于: 如果希望尝试最新的功能和改进,并喜欢与最新技术保持同步&am…...
基于Java+SpringMvc+Vue技术的智慧校园系统设计与实现
博主介绍:硕士研究生,专注于信息化技术领域开发与管理,会使用java、标准c/c等开发语言,以及毕业项目实战✌ 从事基于java BS架构、CS架构、c/c 编程工作近16年,拥有近12年的管理工作经验,拥有较丰富的技术架…...
【蔬菜网元宇宙】—— 探索农业的未来之旅
在数字化时代的浪潮中,技术和创新不断塑造着我们的生活方式。现在,这种变革已经延伸到了农业领域。蔬菜网,一个专注于农产品供应链的领先平台,自豪地宣布我们正式迈入元宇宙的世界——一个全新的虚拟空间,旨在彻底改变…...
淘宝商品历史价格查询(免费)
当前资料来源于网络,禁止用于商用,仅限于学习。 淘宝联盟里面就可以看到历史价格 并且没有加密 淘宝商品历史价格查询可以通过以下步骤进行: 先下载后,登录app注册账户 打开淘宝网站或淘宝手机App。在搜索框中输入你想要查询的商…...
14-47 剑和诗人21 - 2024年如何打造AI创业公司
2024 年,随着人工智能继续快速发展并融入几乎所有行业,创建一家人工智能初创公司将带来巨大的机遇。然而,在吸引资金、招聘人才、开发专有技术以及将产品推向市场方面,人工智能初创公司也面临着相当大的挑战。 让我来…...
WPF界面设计-更改按钮样式 自定义字体图标
一、下载图标文件 iconfont-阿里巴巴矢量图标库 二、xaml界面代码编辑 文件结构  对应的图标代码 Fonts/#iconfont 对应文件位置 <Window.Resources><ControlTemplate TargetType"Button" x:Key"CloseButtonTemplate"…...
开源项目的机遇与挑战
随着全球经济和科技环境的快速变化,开源软件项目的蓬勃发展成为了开发者社区的热门话题。越来越多的开发者和企业选择参与开源项目,以推动技术创新和实现协作共赢。本文将从开源项目的发展趋势、参与开源的经验分享,以及开源项目的挑战三个方…...
Linux实现CPU物理隔离
文章目录 背景使用 taskset 命令使用 cgroups案例 背景 在 Linux 上实现 CPU 的物理隔离(也称为 CPU 隔离或 CPU pinning),可以通过将特定的任务或进程绑定到特定的 CPU 核心来实现。这可以提高系统性能,尤其是在需要实时响应的应…...
springer latex模板参考文献不显示
原因 his is BibTeX, Version 0.99d (TeX Live 2024) The top-level auxiliary file: sn-article.aux I couldn’t open style file sn-mathphys-num.bst —line 2 of file sn-article.aux : \bibstyle{sn-mathphys-num : } I’m skipping whatever remains of this command I…...
使用Vue3、Pinia和Vite5打造高度还原的抖音仿制项目
douyin-vue 是一个模仿 抖音|TikTok 的移动端短视频项目。Vue 在移动端的"最佳实践",媲美原生 App 丝滑流畅的使用体验。使用了最新的 Vue 技术栈,基于 Vue3、Vite5 、Pinia实现。数据保存在项目本地,通过 axios-mock-adapter 库拦…...
stm32基本定时器
Driver_TIM6.c 需要注意立即进入中断问题,原因是预分频寄存器并没有更新预分频系数。 #include "Driver_TIM6.h" #include "Delay.h" /*** description: 给定时器6进行初始化* return {*}*/ void Driver_TIM6_Init(void) {/* 1. 给定时器6开启…...
网络安全基础-1
棱角社区:[~]#棱角 ::Edge.Forum* 专业名词 操作系统 文件下载 linux:下载命令 1. wget命令 wget是一个非常强大的命令行下载工具,支持HTTP、HTTPS、FTP等多种协议,并具备断点续传、递归下载等功能。 基本用法: 下载文件到…...
SSH远程访问及控制
目录 一、SSH远程管理 1、SSH定义 2、SSH客户端和服务端 3、SSH工作类型 3.1、对称加密 3.2、非对称加密 4、SSH工作原理 公钥传输原理 4.1、基本概念 4.2、工作过程 5、OpenSSH服务器 二、SSH远程登录方式 1、SSH直接远程登录 2、SSH指定端口登录 3、黑白名单 …...
Qt 绘图详解
文章目录 头文件和构造函数启用反锯齿功能绘制矩形绘制圆角矩形绘制椭圆绘制圆弧绘制弦绘制凸多边形绘制图片绘制直线绘制多条直线绘制多点连接的线绘制路径绘制扇形绘制点绘制文本擦除矩形区域填充矩形填充路径 头文件和构造函数 #include "mainwindow.h" #include…...
Python 爬虫与 Java 爬虫:相似之处、不同之处和选项
在信息时代,网络上可用的数据量巨大且不断增长。为了从这些数据中提取有用的信息,爬虫已成为一种重要的技术。Python 和 Java 都是流行的编程语言,都具有强大的爬虫功能。本文将深入探讨 Python 爬虫和 Java 爬虫之间的差异,以帮助…...
视频监控汇聚平台LntonCVS视频监控系统解决智慧产业园的安全应用方案
近年来,随着全国各地数字化转型和相关政策的出台,数字化和智慧化在各行业迅速发展,尤其是作为产业集群重要组成部分的产业园区。然而,园区智慧化进程加快的同时,数字化转型面临着诸如视频监控数据分散、联通不畅、碎片…...
MAVLink代码生成-C#
一. 准备Windows下安装环境 Python 3.3 – 官网链接下载Python future模块 –pip3 install future TkInter (GUI 工具). – python for Windows自带,无需下载环境变量PYTHONPATH必须包含mavlink存储库的目录路径。 –set PYTHONPATH你的mavlink源码路径 源码下载在…...
二四、3d人脸构建
一、下载github项目3dmm_cnn-master https://github.com/anhttran/3dmm_cnn.git 一个使用深度神经网络从单个图像进行 3D 人脸建模的项目,端到端代码,可直接根据图像强度进行 3D 形状和纹理估计;使用回归的 3D 面部模型,从检测到的面部特征点估计头部姿势和表情。…...
鸿蒙开发:Universal Keystore Kit(密钥管理服务)【加解密(C/C++)】
加解密(C/C) 以AES 256密钥为例,完成加解密。具体的场景介绍及支持的算法规格。 在CMake脚本中链接相关动态库 target_link_libraries(entry PUBLIC libhuks_ndk.z.so)开发步骤 生成密钥 指定密钥别名。初始化密钥属性集。调用OH_Huks_GenerateKeyItem生成密钥)…...
Python的入门知识(上)
学习目标: 了解python 入门知识 这里写目录标题 学习目标:学习内容:快速入门 Python 基础特殊规则及特殊字符:Python 文件组织:多元赋值:变量命名规则:__name__ 系统变量:内存管理&a…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...
LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...
