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.pswp.cn/diannao/39197.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/39197.shtml
英文地址,請注明出處:http://en.pswp.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:這…