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

news2025/2/28 11:31:29

作者: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_stmt

mysql> 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.tar

2.解压
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/mysql

rpm -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.coloradmin.cn/o/1884903.html

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

相关文章

Runway:Gen-3 Alpha 文生视频现已开放

Runway 自 6 月 17 号公布 Gen-3 Alpha 快半个月了, 现在终于对所有人开放了,当然前提是你至少订阅了标准版(12 美刀/月), 传送门:runwayml.com

【CSS in Depth 2 精译】2.3 告别像素思维

当前内容所在位置 第一章 层叠、优先级与继承第二章 相对单位 2.1 相对单位的威力 2.1.1 响应式设计的兴起 2.2 em 与 rem 2.2.1 使用 em 定义字号2.2.2 使用 rem 设置字号 2.3 告别像素思维 ✔️2.4 视口的相对单位2.5 无单位的数值与行高2.6 自定义属性2.7 本章小结 2.3 告别…

电脑IP地址自动获取:操作指南与优势分析

在数字化时代,网络连接已成为我们日常生活和工作中的重要组成部分。而在建立网络连接的过程中,IP地址的设置无疑是至关重要的一环。IP地址,作为网络设备的唯一标识,其设置方式直接影响到网络的稳定性和安全性。本文将详细介绍如何…

充气膜羽毛球馆投资需要多少钱—轻空间

充气膜羽毛球馆是一种现代化的运动设施,以其灵活的结构设计和高效的能耗管理受到广泛关注。投资建设一个充气膜羽毛球馆,涉及多个方面的成本,包括基础建设、膜材选择、系统配置以及运营维护费用。轻空间将详细分析投资建设充气膜羽毛球馆的成…

如何在OpenEuler 上快速部署一套Zabbix7.0监控系统

如何在OpenEuler 上快速部署一套Zabbix监控系统 一、环境信息 用途机器IP操作系统备注zabbix-server172.22.33.180openeuler 22.03 LTS SP37.0 LTS 版本,容器部署zabbix-agent172.16.10.182openeuler 22.03 LTS SP37.0 源码编译部署 二、Docker 部署 2.1 二进制…

一场前端框架的“武林大会”,三大主流框架之间的性能比较!!!

大家好,我是CodeQi! 在前端开发的江湖中,Vue.js、React 和 Angular 可谓是三大门派,个个身怀绝技,堪称“武林三杰”。 我,作为一名勤奋的代码侠士,决定深入研究这三大门派的奥义,探讨它们在性能方面的表现。且听我细细道来。 什么是 Vue? Vue.js 是由尤雨溪创建的前…

pdf合并工具,pdf合并器,多个pdf合并成一个pdf

你是否有过这样的困扰:手头上有好几个pdfF文档,需要将它们合并成一个单一的文件,但却不知道从何下手?别担心,这篇文章将为你揭秘多个pdf合并成一个pdf的方法,让你轻松实现pdf文档整合的问题! 首…

JDBC1(JDBC相关类与接口 ​连接mysql数据库​ 测试 不同数据库厂商实现-MySQL和Oracle)

目录 一、JDBC 1. JDBC相关类与接口 1.1 DriverManager 1.2 Connection 1.3 Statement 4.ResultSet 2. JDBC工作原理 二、连接mysql数据库 1. 导入jar包 2. 使用DriverManager加载驱动类 3. Connection接口 4. Statement接口 5. ResultSet接口 ​编辑 6. 关闭并…

Drools开源业务规则引擎(一)- 安装与介绍

文章目录 [toc] Drools开源业务规则引擎(一)- 安装与介绍0.何为规则引擎1.Drools介绍1.1.依赖模块1.2.规则引擎 2.Drools安装2.1.依赖导入2.2.规则的输入和输出类型输入类型输出类型 2.3.创建规则文件2.4.构建可执行规则库2.5.执行结果: 3.Dr…

CesiumJS【Basic】- #040 绘制渐变线(Primitive方式)

文章目录 绘制渐变线(Primitive方式)1 目标2 代码2.1 main.ts绘制渐变线(Primitive方式) 1 目标 使用Primitive方式绘制渐变线 2 代码 2.1 main.ts import * as Cesium from cesium;const viewer = new Cesium.Viewer

【ubuntu18.04】 局域网唤醒 wakeonlan

ai服务器经常因为断电,无法重启,当然可以设置bios 来电启动。 这里使用局域网唤醒配置。 自动开关机设置 工具:ethtool 端口 : enp4s0 Wake-on: d 表示禁用Wake-on: g 激活 ,例如:ethtool -s eth0 wol g 配置/etc/rc.local ,这个文件不存在,自己创建工具下载 tengxun W…

机器学习项目-基于随机森林的航空公司用户满意度分析

摘要 ​ 航空旅行是人们出行的常用方式之一,乘客对于航空公司的服务质量有着较高的要求。满意度是衡量服务质量的重要指标,因此预测航空公司乘客的满意度对于提高服务质量具有重要意义。 ​ 近年来,机器学习在预测领域得到了广泛应用。机器…

机器人入门路线及参考资料(机器人操作方向)

机器人(操作方向)入门路线及参考资料 前言1 数理基础和编程2 机器人学理论3 计算机视觉4 机器人实操5 专攻方向总结Reference: 前言 随着机器人和具身智能时代的到来,机器人越来越受到大家的重视,本文就介绍了机器人(…

基于公有云部署wordpress

云平台选择 腾讯云 阿里云 华为云 项目部署 一、架构讲解 1.1、定义与组成 LNMP是Linux、Nginx、MySQL(或MariaDB)和PHP(或Perl、Python)的首字母缩写,代表在Linux系统下使用Nginx作为Web服务器,MySQL作为…

vue3 elementplus Springboot 商品系统,商城类后台管理案例源码

系统演示 项目获取地址 Springboot vue3 elementplus 商品管理系统 商城后台管理系统案例源码 附带系统演示,环境搭建教程,开发工具 技术栈:SpringBoot Vue3 ElementPlus MybatisPlus 开发工具:idea 后端构建工具:Maven 前端构建工具:vite 运行环境:Windows …

Linux基础IO操作详解

C文件IO相关接口 fopen函数 pathname: 要打开的文件名字符串mode: 访问文件的模式 模式描述含义“r”读文件不存在失败返回null“r”读写文件不存在打开失败返回null,文件存在则从头开始覆盖现有的数据(不会清空数据)“w”写文件不存在创建…

[leetcode]文件组合

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:vector<vector<int>> fileCombination(int target) {vector<vector<int>> vec;vector<int> res;int sum 0, limit (target - 1) / 2; // (target - 1) / 2 等效于 target /…

[机器学习]-4 Transformer介绍和ChatGPT本质

Transformer Transformer是由Vaswani等人在2017年提出的一种深度学习模型架构&#xff0c;最初用于自然语言处理&#xff08;NLP&#xff09;任务&#xff0c;特别是机器翻译。Transformer通过自注意机制和完全基于注意力的架构&#xff0c;核心思想是通过注意力来捕捉输入序列…

RuoYi-Vue项目后端增加自己的模块,要注意的点,只看我这一片就够了。

若依版本&#xff1a; RuoYi-Vue: &#x1f389; 基于SpringBoot&#xff0c;Spring Security&#xff0c;JWT&#xff0c;Vue & Element 的前后端分离权限管理系统&#xff0c;同时提供了 Vue3 的版本 背景&#xff1a; 后端想自己增加一个模块&#xff0c;但是包路径…

气膜建筑照明:吊式与落地灯杆的利弊—轻空间

气膜建筑以其独特的设计和高效的功能性&#xff0c;广泛应用于体育场馆、工厂等各类场所。在这些气膜建筑中&#xff0c;照明方式的选择尤为重要。尽管有多种照明方式可供选择&#xff0c;但常用的反射光源形式在气膜建筑中尤为普遍。轻空间将重点介绍两种常用的反射照明方式&a…