MySQL 9.0创新版发布!功能又进化了!

作者:IT邦德
中国DBA联盟(ACDU)成员,10余年DBA工作经验,
Oracle、PostgreSQL ACE
CSDN博客专家及B站知名UP主,全网粉丝10万+
擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复,
安装迁移,性能优化、故障应急处理
微信:jem_db
QQ交流群:587159446
公众号:IT邦德

文章目录

  • 前言
    • 1.MySQL版本变更
    • 2.MySQL9.0功能进化
      • 2.1 添加或更改的功能
      • 2.2 弃用的功能
      • 2.3 删除的功能
    • 3.MySQL9.0新版本体验
      • 3.1 安装依赖
      • 3.2 添加用户及组
      • 3.3 安装包上传解压
      • 3.4 正式安装
      • 3.5 初始化
      • 3.4 启动MySQL服务
      • 3.5 登陆新增用户
    • 4.向量及JSON体验
    • 5.总结

前言

MySQL9.0创新版本已经正式发布,这次功能确实进化了不少!

1.MySQL版本变更

Oracle每季度发布一次MySQL更新,我平时也一直留意的官网的动态,2024年7月1推出了最新的 MySQL9.0创新版本.

MySQL发布模型分为两个主要轨道:LTS(长期支持)和创新。所有LTS和Innovation版本都包含错误和安全修复,并被视为生产级质量。

2.MySQL9.0功能进化

2.1 添加或更改的功能

1.从MySQL 9.0.0开始支持将
EXPLAIN ANALYZE的JSON输出保存到用户变量中EXPLAIN ANALYZE FORMAT=JSON INTO @variable select_stmtmysql> EXPLAIN FORMAT=JSON INTO @myupdate ->   UPDATE a SET name2 = "garcia" WHERE id = 3;              
mysql> SELECT @myupdate, @mydelete\G
*************************** 1. row ***************************
@myupdate: {"query_block": {"select_id": 1,"table": {"update": true,"table_name": "a","access_type": "range","possible_keys": ["PRIMARY"],"key": "PRIMARY","used_key_parts": ["id"],"key_length": "4","ref": ["const"],"rows_examined_per_scan": 1,"filtered": "100.00","attached_condition": "(`db`.`a`.`id` = 3)"}}
}
2.Event DDL in prepared statements
MySQL 9.0提供了对服务器端准备语句的支持,那有什么好处呢?
a.减少每次执行语句时解析语句的开销。
通常,数据库应用程序处理大量几乎相同的语句,
只更改子句中的文字或变量值,
如用于查询和删除的WHERE、用于更新的SET和用于插入的values。
b.防止SQL注入攻击。
参数值可以包含未加转义的SQL引号和分隔符。--使用方法如下:
mysql> PREPARE stmt1 FROM 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse';
mysql> SET @a = 3;
mysql> SET @b = 4;
mysql> EXECUTE stmt1 USING @a, @b;
+------------+
| hypotenuse |
+------------+
|          5 |
+------------+
mysql> DEALLOCATE PREPARE stmt1;
3.新增2个性能架构系统变量表
(1)variables_metadata表
提供了有关系统变量的一般信息。
这些信息包括MySQL服务器识别的每个系统变量的
名称、范围、类型、范围(如适用)和描述。(2)global_variable_attributes表
提供了有关服务器分配给全局系统变量的属性值对的信息。

2.2 弃用的功能

能架构variables_info表列的MIN_VALUE和MAX_VALUE列现在已被弃用,
请使用variables_metadata表中具有相同名称的列

2.3 删除的功能

为了向后兼容,mysql_native_password在客户端上仍然可用,因此mysql 9.0客户端程序可以连接到早期版本的mysql服务器。在MySQL 9.0中,以前版本的客户端程序中内置的MySQL本地身份验证插件已转换为必须在运行时加载的插件。

其实从mysql 8.0中不推荐使用的mysql_native_password身份验证插件已被删除。
服务器现在拒绝来自不具有client_PLUGIN_AUTH
功能的旧客户端程序的mysql_native身份验证请求
由于此更改,9.0还删除了以下服务器选项和变量:
–mysql本机密码服务器选项
–mysql本机密码代理用户服务器选项
–default_authentication_plugin服务器系统变量

3.MySQL9.0新版本体验

以下是MySQL9.0支持的的平台

以下是MySQL9.0下载的地址
https://dev.mysql.com/downloads/mysql/

3.1 安装依赖

yum -y install lrzsz wget perl-Digest-MD5
yum -y install numactl
yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make

3.2 添加用户及组

groupadd mysql
useradd -g mysql -d /home/mysql mysql
passwd mysql

3.3 安装包上传解压

1.压缩包校验
md5sum mysql-9.0.0-1.el8.x86_64.rpm-bundle.tar
47c7bd2b1b987049450d8081497f84c4  mysql-9.0.0-1.el8.x86_64.rpm-bundle.tar2.解压
tar -xvf mysql-9.0.0-1.el8.x86_64.rpm-bundle.tar -C /home/mysql/3.授权
chown -R mysql:mysql /home/mysql/--安装以下四个即可
mysql-community-common-9.0.0-1.el8.x86_64.rpm
mysql-community-libs-9.0.0-1.el8.x86_64.rpm
mysql-community-client-9.0.0-1.el8.x86_64.rpm
mysql-community-server-9.0.0-1.el8.x86_64.rpm

3.4 正式安装

安装顺序:包之间相互依赖,所以必须注意安装顺序
✓ 先装 common 
✓ 再装 libs
✓ 再装 client
✓ 最后装 server注:root用户下操作
[root@rhel8 ~]# cd /home/mysqlrpm -ivh mysql-community-common-9.0.0-1.el8.x86_64.rpm
rpm -ivh --force --nodeps mysql-community-libs-9.0.0-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-9.0.0-1.el8.x86_64.rpm --force --nodeps
rpm -ivh mysql-community-server-9.0.0-1.el8.x86_64.rpm --force --nodeps

3.5 初始化

1.初始化
mysqld --initialize
2.授权
chown mysql:mysql /var/lib/mysql -R

3.4 启动MySQL服务

systemctl start mysqld
systemctl status mysqld
systemctl enable mysqld

3.5 登陆新增用户

## 临时密码登陆
grep 'temporary password' /var/log/mysqld.log
mysql -uroot -p## 修改本地用户密码
mysql> alter user root@'localhost' identified  by 'root';
Query OK, 0 rows affected (0.00 sec)mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)mysql> select Host,User from mysql.user;
+-----------+------------------+
| Host      | User             |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+
4 rows in set (0.00 sec)##新增远程登陆
mysql> create user root@'%' identified by 'root';
mysql> grant all on *.* to root@'%' with grant option;
mysql> flush privileges;

4.向量及JSON体验

mysql> create database testdb;
mysql> use testdb;mysql>CREATE TABLE vector_json (id INT PRIMARY KEY,json_value JSON,vector_value vector
);--插入向量及JSON
INSERT INTO vector_json (id, json_value,vector_value) 
VALUES 
(1, 
JSON_ARRAY(1.0, 2.0, 3.0,4.0),
to_vector('[1,2,3,4]')
);select 
id,
json_value,
VECTOR_DIM(vector_value) 
from vector_json;

5.总结

Oracle每季度发布一次MySQL更新,让我持续关注MySQL的发展

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/39197.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

稳居C位的AIGC,真能让人人都成“设计大神”?

在当今数字化时代,随着人工智能技术的飞速发展,AIGC(AI Generated Content,即人工智能生成内容)已经逐渐成为设计领域的新宠。特别是在UI设计领域,AIGC的崛起引人注目,甚至有人宣称,…

大数据、人工智能、云计算、物联网、区块链序言【大数据导论】

各位大佬好 ,这里是阿川的博客,祝您变得更强 个人主页:在线OJ的阿川 大佬的支持和鼓励,将是我成长路上最大的动力 阿川水平有限,如有错误,欢迎大佬指正 本篇序言前 必看 【大数据导论】—大数据序言 这是…

使用Python实现深度学习模型:自监督学习与对抗性训练

在深度学习中,自监督学习和对抗性训练是两种强大的技术。自监督学习通过设计预任务来生成伪标签,减少对标注数据的依赖;对抗性训练通过生成对抗样本,提高模型的鲁棒性。本文将详细讲解如何使用Python实现自监督学习与对抗性训练,包括概念介绍、代码实现和示例应用。 目录…

vant的dialog触发了其他overlay

原代码: <!-- dialog --><van-dialog v-model"showTipsDialog" title"温馨提示"><p>dialog内容</p></van-dialog><!-- overlay --><van-overlay style"display: flex" :show"showLoadingOverlay&q…

高通Android12启动流程分析

参考链接 https://blog.csdn.net/kill150/article/details/129929641 https://blog.csdn.net/Harrison509/article/details/108659469 https://www.cnblogs.com/pngcui/p/4665106.html 系统启动流程概览 高通Android设备的启动流程通常遵循以下步骤: PBL (Primary Boot Loa…

【JAVA】利用Redisson和Spring实现高效物联温度控制链路,确保温度调节的准确性和效率,定时链路执行使用案例,一环扣一环

主要功能和场景 柔性调温策略&#xff1a;这个类主要用于管理一个温度调节流程&#xff0c;通过不同的策略&#xff08;如策略1和策略2&#xff09;来调节温度&#xff0c;确保设备或环境中的温度达到预设的目标。 紧急停止机制&#xff1a;在流程执行过程中&#xff0c;如果需…

AI模型大宗师Transformer的Encoder魔法棒

在AI大模型数字王国里&#xff0c;有一位名叫Transformer的魔法大宗师。他有一个神奇的百宝箱&#xff0c;里面有很多魔法工具&#xff0c;其中有个工具叫Encoder&#xff0c;这个工具拥有一种神奇的力量&#xff0c;可以将复杂的输入信息进行编码&#xff0c;提取出关键的特征…

以 Vue 3 项目为例,你是否经常遇到 import 语句顺序混乱的问题?要想解决它其实很容易!

大家好,我是CodeQi! 在项目开发过程中,我们经常会遇到项目中的 import 语句顺序混乱的问题。 这不仅会影响代码的可读性,还可能使我们代码在提交的时候产生不必要的冲突。 面对这种情况,要想解决它其实很容易。 通过合理的规范和自动化工具,我们可以确保 import 语句…

计算机网络 —— 路由协议:RIP、OSPF、BGP、MPLS

路由协议 1. 定义2. IGP2.1 RIP2.2 OSPF 3. BGP4. MPLS 1. 定义 互联网中需要通过路由将数据发送至目标主机。 路由器根据路由控制表(RoutingTable)转发数据包&#xff0c;它根据所收到的数据包中目标主机的IP地址与路由控制表的比较得出下一个应该接收的路由器。 &#xff…

大学生放学后一定要做的4件事情

不知道有多少学生们&#xff0c;和我当年一样&#xff0c;上课不想去&#xff0c;找人帮着点名。放学后&#xff0c;去网吧&#xff0c;瞎玩&#xff0c;玩着玩着就毕业了&#xff0c;现在想想啊&#xff0c;真是不应该。所以&#xff0c;下面这4件事情&#xff0c;我建议你去做…

Linux/Unix命令

这篇是另一篇内容的前置知识。因为项目部署测试需要&#xff0c;向公司申请了一个虚拟机做服务器用。以下是回溯的命令&#xff0c;多了解了解&#xff0c;拓宽知识面吧。PS&#xff1a;本人unix/linux知识0&#xff0c;见啥都稀奇&#xff0c;小白一个&#xff0c;知识浅显&am…

CSharp——Encoding编码详情

CSharp-Encoding编码 在网络通信中&#xff0c;很多情况下都是将字符信息转成字节序列进行传输。将字符序列转为字节序列的过程称为编码。当这些字节传送到接收方&#xff0c;接收方需要逆向将字节序列转为字符序列。这个过程就是解码。 常见编码有ASCII字符集 &#xff0c;非…

SQL | join 的目的是什么?

如是我闻&#xff1a; 在 SQL 中使用 JOIN 的目的是将两个或多个数据库表的数据组合在一起&#xff0c;这样我们就可以在一个查询中获取这些表的相关信息。 假设我们有两本不同的书&#xff0c;一本记录了孩子们的名字和他们的爱好&#xff0c;另一本记录了他们的家庭地址。如…

盛元广通打造智慧校园实验室安全管理系统

盛元广通智慧校园实验室安全管理系统以安全为重点&#xff0c;构建由学校、二级单位、实验室组成的三级联动的实验室安全多级管理体系、多类用户角色&#xff0c;内置教育部标准检查表&#xff0c;支撑实验室相关业务过程的智慧管理。实现通过PC端/手机移动端开展检查工作、手机…

sh脚本笔记2

test条件测试 语法 条件测试语法说明语法1&#xff1a;test <测试表达式>这是利用test命令进行条件测试表达式的方法。test命令和“<测试表达式>”之间至少有一个空格语法2&#xff1a;[ <测试表达式> ]这是通过[]&#xff08;单中括号&#xff09;进行条件…

将exe文件添加到注册表中,实现开机时自动运行

目录 一、前言 二、代码 三、使用步骤 1.编译生成exe文件、 2.以管理员身份运行代码 3.打开注册表&#xff0c;验证结果 一、前言 在Windows操作系统中&#xff0c;将exe文件的路径添加到注册表下&#xff0c;主要用于实现程序的开机自动运行功能。 注册表路径为&#xf…

白骑士的C语言教学基础篇 1.3 控制流

系列目录 上一篇&#xff1a;白骑士的C语言教学基础篇 1.2 C语言基础语法 在这一节中&#xff0c;我们将介绍C语言中的控制流结构&#xff0c;包括条件语句、循环语句以及循环控制语句。这些结构允许我们根据不同的条件执行不同的代码块&#xff0c;从而使程序更具灵活性和功能…

Python中的并发编程(5)PyQt 多线程

PyQt 多线程 1 卡住的计时器 我们定义了一个计时器&#xff0c;每秒钟更新一次显示的数字。此外我们定义了一个耗时5秒的任务oh_no&#xff0c;和按钮“危险”绑定。 当我们点击“危险”按钮时&#xff0c;程序去执行oh_no&#xff0c;导致显示停止更新了。 import sys im…

Aspose.PDF功能演示:在程序中合并 JPG 文件

Aspose.PDF 是一款高级PDF处理API&#xff0c;可以在跨平台应用程序中轻松生成&#xff0c;修改&#xff0c;转换&#xff0c;呈现&#xff0c;保护和打印文档。无需使用Adobe Acrobat。此外&#xff0c;API提供压缩选项&#xff0c;表创建和处理&#xff0c;图形和图像功能&am…

Kile钟优化等级讲解

这里直接说说kile的优化等级: 这里有4个等级,分别为:-O0、-O1、-O2、-O3 为什么要进行编译优化? 主要目的: 1. 提高代码执行的速度; 2. 减少内存占用; 3. 降低能耗,延长电池寿命; 4. 消除代码中冗余和不必要的代码,提高程序稳定性和可靠性。 Kile等级描述: -O0:这…