MySQL 9.0创新版发布!功能又进化了!
创始人
2025-01-15 07:37:23
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_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的发展

相关内容

热门资讯

一分钟内幕!科乐吉林麻将系统发... 一分钟内幕!科乐吉林麻将系统发牌规律,福建大玩家确实真的是有挂,技巧教程(有挂ai代打);所有人都在...
一分钟揭秘!微扑克辅助软件(透... 一分钟揭秘!微扑克辅助软件(透视辅助)确实是有挂(2024已更新)(哔哩哔哩);1、用户打开应用后不...
五分钟发现!广东雀神麻雀怎么赢... 五分钟发现!广东雀神麻雀怎么赢,朋朋棋牌都是是真的有挂,高科技教程(有挂方法)1、广东雀神麻雀怎么赢...
每日必看!人皇大厅吗(透明挂)... 每日必看!人皇大厅吗(透明挂)好像存在有挂(2026已更新)(哔哩哔哩);人皇大厅吗辅助器中分为三种...
重大科普!新华棋牌有挂吗(透视... 重大科普!新华棋牌有挂吗(透视)一直是有挂(2021已更新)(哔哩哔哩)1、完成新华棋牌有挂吗的残局...
二分钟内幕!微信小程序途游辅助... 二分钟内幕!微信小程序途游辅助器,掌中乐游戏中心其实存在有挂,微扑克教程(有挂规律)二分钟内幕!微信...
科技揭秘!jj斗地主系统控牌吗... 科技揭秘!jj斗地主系统控牌吗(透视)本来真的是有挂(2025已更新)(哔哩哔哩)1、科技揭秘!jj...
1分钟普及!哈灵麻将攻略小,微... 1分钟普及!哈灵麻将攻略小,微信小程序十三张好像存在有挂,规律教程(有挂技巧)哈灵麻将攻略小是一种具...
9分钟教程!科乐麻将有挂吗,传... 9分钟教程!科乐麻将有挂吗,传送屋高防版辅助(总是存在有挂)1、完成传送屋高防版辅助透视辅助安装,帮...
每日必看教程!兴动游戏辅助器下... 每日必看教程!兴动游戏辅助器下载(辅助)真是真的有挂(2025已更新)(哔哩哔哩)1、打开软件启动之...