千呼萬喚始出來的新版本MySQL 8.1及MySQL 8.0.34於2023年7月18日正式發行。從此,MySQL將開啟創新版和穩定版同時發行的階段。MySQL 8.1是MySQL的首個創新版,該版本主要增加瞭如下功能: 捕捉EXPLAIN FORMAT=JSON輸出, 為EXPLAIN FORMA ...
千呼萬喚始出來的新版本MySQL 8.1及MySQL 8.0.34於2023年7月18日正式發行。從此,MySQL將開啟創新版和穩定版同時發行的階段。MySQL 8.1是MySQL的首個創新版,該版本主要增加瞭如下功能:
-
捕捉EXPLAIN FORMAT=JSON輸出, 為EXPLAIN FORMAT=JSON增加INTO選項,可以將JSON格式的輸出保存在一個用戶變數中。
-
保留客戶端註釋,MySQL 8.1保留mysql客戶端的註釋,如果需要使用之前的行為,需要使用--skip-comments選項
-
MySQL Replication更改
SOURCE_RETRY_COUNT,CHANGE REPLICATION SOURCE TO語句中SOURCE_RETRY_COUNT的預設值改為10,這意味著,使用此選項和SOURCE_CONNECT_RETRY(60)的預設值,副本在重新連接嘗試之間等待60秒,併在超時和故障轉移之前以此速率嘗試重新連接10分鐘。
-
group_replication_set_as_primary() 及DDL語句,在選擇一個新的主節點之前,group_replication_set_as_primary()函數需要等待所有事務完成前正在進行的DDL語句。
-
版本特定註釋中使用的MySQL版本號現在支持由一個或兩個數字組成的主版本,這意味著整個版本現在可以是五位數或六位數長。
-
強化關閉伺服器過程的日誌,隨著MySQL伺服器、插件和組件的啟動和關閉消息的增加,強化關閉過程的日誌,附加功能應該有助於故障排除和調試問題,特別是在伺服器需要很長時間才能關閉的情況下。
-
增加了SHOW PARSE_TREE語句,該語句顯示了select語句的json格式解析樹。此語句僅用於測試和開發,而不是用於生產。它僅用於調試版本中
-
增加了tls-certificates- enforsed - validation系統變數,允許DBA在伺服器啟動時或使用ALTER INSTANCE RELOAD TLS語句在運行時重新載入證書時強制執行證書驗證。啟用強制後,發現證書無效時將在啟動時停止伺服器調用,防止在運行時載入無效證書,併發出警告。
-
添加了一些特定於組複製插件的狀態變數,這些變數可以改進對網路不穩定的診斷和故障排除,為每個組成員提供有關網路使用情況、控制消息和數據消息的統計信息。
-
添加了伺服器系統變數,用來控制使用LDAP可插拔身份驗證連接到MySQL伺服器的MySQL帳戶在LDAP伺服器關閉或無響應時必須等待的時間。對於以下簡單且基於sasl的LDAP身份驗證變數,新的預設超時為30秒,連接和響應超時只能通過Linux平臺上的系統變數進行配置。有關更多信息,請參見設置LDAP可插拔身份驗證的超時時間。
除了新增功能外,還做了以下調整,這部分內容基本上與MySQL 8.0.34一致。
用戶管理方面,增加了一個系統變數“validate_password.changed_characters_percentage”用於密碼驗證。該變數用於配置用戶在更改密碼時必須修改的字元數量,數量以當前密碼的字元數百分比計算。假設該變數值設為50,則新密碼中至少有一半的字元需要修改。
MySQL審計方面,增加新的功能,在安裝審計插件時,可以指定用戶存儲日誌過濾條件的資料庫。例如:
$> mysql -u root -D database_name -p < audit_log_filter_linux_install.sql
此外,MySQL審計增加了使用調度器組件來配置和執行迴圈任務,刷新記憶體緩存的新功能。
二進位日誌方面,在libmysqlclient.so庫中增加了新的函數mysql_binlog_open(),mysql_binlog_fetch(),及mysql_binlog_close(),使得開發者能夠訪MySQL伺服器的二進位日誌。
相容性方面,改進了Windows的MSVC_CPPCHECK支持,並檢查類似的MSVC警告“維護”模式。
Windows編譯方面,改善了WIN_DEBUG_NO_INLINE=1的支持,使用量將超過庫的65535個對象的限制。
此外,對robin-hood-hashing、ICU文件及ZSTD的版本等進行了升級。
由於MySQL提供了mysql shell 和mysqldump用於備份,因此,mysqlpump將進行降級處理,使用時將有警告提示,未來將棄用該產品。
用於複製的伺服器變數“sync_relay_log_info”、“binlog_format”,在此版本中降級處理,未來將棄用該變數。因此,與其關聯的“log_bin_trust_function_creators”和“log_statements_unsafe_for_binlog”也將降級使用,最終棄用。需要註意,“binlog_format”棄用後,MySQL的二進位日誌格式僅支持“row-based”。
用於組複製的伺服器變數“group_replication_recovery_complete_at”,及 “mysql_native_password”認證插件降級使用,未來將棄用。
此外,包括審計日誌的傳統過濾模式、mysql_ssl_rsa_setup程式,及密鑰環文件插件等也進行降級處理,未來將棄用。
用戶需要註意,以往的特定與版本的註釋方式“/*!80034KEY_BLOCK_SIZE=1024*/或/*!80034 KEY_BLOCK_SIZE=1024*/ ”不考慮版本號後面的空格,但未來版本的該行為可能會發生變化。因此,從此版本開始,請用戶在版本號後面加入空格使用,
SQL語法方面,此版本支持使用CURRENT_USER() 、SESSION_USER()、USER(), SYSTEM_USER()在建表語句或更改表語句中作為Varchar或TEXT類型欄位的預設值。
除了上述提到的更改和棄用,MySQL 8.1及MySQL 8.0.34版本做了大量的錯誤修複,使得MySQL 8.0進入一個穩定的狀態。詳細的變更內容,請參照官網的發行一覽。
整理作者介紹
徐軼韜,MySQL解決方案首席工程師。為中國金融、政府、航空運輸等行業的MySQL用戶提供相關產品的售前咨詢,企業級產品介紹服務以及推廣和普及MySQL資料庫在社區的使用。公眾號“MySQL解決方案工程師”運營者和內容作者。
本文來自博客園,作者:古道輕風,轉載請註明原文鏈接:https://www.cnblogs.com/88223100/p/What-are-the-new-features-worth-paying-attention-to-in-MySQL-8_1.html