MySQL8.1 正式發行

2023-07-30 22:50:53

   新(xin)版本MySQL 8.1及MySQL 8.0.34于2023年7月18日正式發(fa)行。從此,MySQL將開啟創新(xin)版和穩定版同時發(fa)行的(de)階段。MySQL 8.1是MySQL的(de)首個(ge)創新(xin)版,該版本主要增加了如下(xia)功能(neng) :

  • 捕捉EXPLAIN FORMAT=JSON 輸出, 為 EXPLAIN FORMAT=JSON 增加(jia)  選(xuan)項,可(ke)以將JSON格(ge)式的輸出保(bao)存(cun)在(zai)一個用戶(hu)變量(liang)中。
  • 保(bao)留客戶(hu)端注(zhu)釋(shi),MySQL8.1保(bao)留mysql客戶(hu)端的注(zhu)釋(shi),如果需(xu)(xu)要使用之前的行為(wei),需(xu)(xu)要使用--skip-comments選項
  • MySQL Replication更改(gai)SOURCE_RETRY_COUNT,CHANGE REPLICATION SOURCE TO 語句中(zhong)SOURCE_RETRY_COUNT的默認值改(gai)為10,這意味著,使(shi)用此(ci)選項和(he)SOURCE_CONNECT_RETRY(60)的默認值,副本在重新連接嘗試之間(jian)等(deng)待60秒(miao),并在超時和(he)故障(zhang)轉移之前以(yi)此(ci)速率嘗試重新連接10分鐘。
  • group_replication_set_as_primary() 及DDL語句(ju),在(zai)選擇一個新的主節點之前,group_replication_set_as_primary()函數需要等(deng)待(dai)所(suo)有事(shi)務完成前正在(zai)進行(xing)的DDL語句(ju)。
  • 版(ban)本(ben)特(te)定注釋中使用的(de)MySQL版(ban)本(ben)號現在(zai)支持由一個或兩個數字(zi)組(zu)成的(de)主版(ban)本(ben),這意味著整個版(ban)本(ben)現在(zai)可以是五位(wei)數或六位(wei)數長(chang)。
  • 強(qiang)化關閉服務(wu)器過程的(de)(de)日(ri)志(zhi),隨著MySQL服務(wu)器、插件和組件的(de)(de)啟動和關閉消(xiao)息的(de)(de)增加,強(qiang)化關閉過程的(de)(de)日(ri)志(zhi),附加功能應(ying)該有助于故(gu)障排除和調試(shi)問題,特別是(shi)在服務(wu)器需(xu)要很長時(shi)間才(cai)能關閉的(de)(de)情況下。
  • 增(zeng)加了SHOW PARSE_TREE語句,該語句顯示(shi)了語句的json格式解(jie)析(xi)樹。此語句僅用于(yu)測(ce)試(shi)和開發,而不是用于(yu)生(sheng)產。它僅用于(yu)調(diao)試(shi)版本中
  • 增(zeng)加了tls-certificates- enforsed - validation系(xi)統變量,允許DBA在服務(wu)器啟動(dong)時(shi)(shi)(shi)或(huo)使用(yong)(yong) INSTANCE RELOAD TLS語句在運行時(shi)(shi)(shi)重新加載(zai)證(zheng)書(shu)時(shi)(shi)(shi)強(qiang)制(zhi)執行證(zheng)書(shu)驗證(zheng)。啟用(yong)(yong)強(qiang)制(zhi)后(hou),發現證(zheng)書(shu)無效(xiao)時(shi)(shi)(shi)將在啟動(dong)時(shi)(shi)(shi)停(ting)止服務(wu)器調用(yong)(yong),防(fang)止在運行時(shi)(shi)(shi)加載(zai)無效(xiao)證(zheng)書(shu),并發出警告。
  • 添(tian)加了一(yi)些特定(ding)于組(zu)(zu)復(fu)制插(cha)件的狀態變量,這些變量可以(yi)改進對網(wang)絡(luo)不穩(wen)定(ding)的診(zhen)斷(duan)和(he)故障排除,為每個(ge)組(zu)(zu)成(cheng)員提供有(you)關網(wang)絡(luo)使用情(qing)況(kuang)、控制消息和(he)數據消息的統(tong)計信(xin)息。
  • 添加了服務(wu)器系(xi)統(tong)變(bian)量(liang),用來控制使(shi)用LDAP可(ke)插(cha)拔(ba)身(shen)份驗(yan)(yan)證連接(jie)到MySQL服務(wu)器的(de)(de)MySQL帳戶在(zai)LDAP服務(wu)器關閉或(huo)無響應(ying)時必須等待的(de)(de)時間(jian)。對于以下簡(jian)單且基于sasl的(de)(de)LDAP身(shen)份驗(yan)(yan)證變(bian)量(liang),新的(de)(de)默認超時為30秒,連接(jie)和響應(ying)超時只能(neng)通(tong)過Linux平臺上的(de)(de)系(xi)統(tong)變(bian)量(liang)進行配置(zhi)。有關更多信(xin)息(xi),請(qing)參見設置(zhi)LDAP可(ke)插(cha)拔(ba)身(shen)份驗(yan)(yan)證的(de)(de)超時時間(jian)。


除了(le)新(xin)增(zeng)功能外,還(huan)做(zuo)了(le)以下調整,這部分內容基本上與MySQL8.0.34一(yi)致(zhi)。

用戶管(guan)理方面(mian),增加了(le)一個系(xi)統(tong)變量(liang)“validate_password.changed_characters_percentage”用于密(mi)碼(ma)驗(yan)證。該變量(liang)用于配置用戶在更改密(mi)碼(ma)時必須修改的字符數(shu)量(liang),數(shu)量(liang)以當(dang)前密(mi)碼(ma)的字符數(shu)百分(fen)比(bi)計算。假(jia)設該變量(liang)值(zhi)設為50,則新密(mi)碼(ma)中至少(shao)有(you)一半的字符需要修改。

MySQL審計(ji)方面,增加新的(de)(de)功能(neng),在安裝審計(ji)插件時(shi),可以指定用戶存儲(chu)日(ri)志(zhi)過(guo)濾條件的(de)(de)數據庫。例如,


$> mysql -u root -D _name -p < audit_log_filter_linux_install.sql

此外,MySQL審計增加了使用調(diao)度器組件來配置和執行循環任(ren)務,刷新內存(cun)緩存(cun)的(de)新功能。

二進制日(ri)志方面,在libmysqlclient.so庫中增加了新的函(han)數mysql_binlog_open(),mysql_binlog_fetch(),及mysql_binlog_close(),使得開發者能(neng)夠訪MySQL服務器的二進制日(ri)志。

兼容性方面,改(gai)進(jin)了Windows的(de)MSVC_CPPCHECK支持,并檢查類似的(de)MSVC警告“維護”模(mo)式(shi)。

Windows編(bian)譯方面,改善(shan)了WIN_DEBUG_NO_INLINE=1 的(de)支持,使用(yong)量將超過庫的(de)65535個對(dui)象的(de)限(xian)制。

此外,對(dui)robin-hood-hashing、ICU文件及ZSTD的版本等進行了(le)升級。

由于MySQL提供了mysql shell 和mysqldump用于備份,因此,mysqlpump將進行降級處理,使用時將有警告提示,未來將棄用該產品。

用(yong)(yong)于(yu)復制(zhi)的服務器變量“sync_relay_log_info”、“binlog_format”,在此(ci)版(ban)本中(zhong)降級(ji)處理(li),未來將棄(qi)用(yong)(yong)該變量。因(yin)此(ci),與其關聯(lian)的“log_bin_trust_function_creators”和“log_statements_unsafe_for_binlog”也將降級(ji)使用(yong)(yong),最終棄(qi)用(yong)(yong)。需要注意(yi),“binlog_format”棄(qi)用(yong)(yong)后,MySQL的二進制(zhi)日志格式僅支持“row-based”。

用于組復制的服務器變(bian)量“group_replication_recovery_complete_at”,及(ji) “mysql_native_password”認證插件降級使用,未來(lai)將(jiang)棄用。

此外(wai),包括審計日志的傳統過濾模式(shi)、mysql_ssl_rsa_setup 程序,及密(mi)鑰(yao)環文(wen)件(jian)插件(jian)等也進行降級處理,未來將棄用。

用戶需(xu)要注意,以往的(de)特定與版(ban)本(ben)(ben)的(de)注釋(shi)方式(shi)“!80034KEY_BLOCK_SIZE=1024*/ 或 !80034 KEY_BLOCK_SIZE=1024*/ ”不考慮版(ban)本(ben)(ben)號后面(mian)的(de)空(kong)格(ge),但未來版(ban)本(ben)(ben)的(de)該行(xing)為可能(neng)會發(fa)生(sheng)變化(hua)。因此,從此版(ban)本(ben)(ben)開始,請用戶在版(ban)本(ben)(ben)號后面(mian)加入(ru)空(kong)格(ge)使用,

SQL語法方面,此(ci)版本支(zhi)持使用CURRENT_USER() 、SESSION_USER()、USER(), SYSTEM_USER()在(zai)建表語句(ju)或(huo)更改表語句(ju)中作為Varchar或(huo)TEXT類型字(zi)段的默認(ren)值。

除(chu)了上述(shu)提到的更(geng)改和棄用,MySQL 8.1及MySQL 8.0.34版本做了大(da)量的錯誤修復,使得MySQL8.0進入一個(ge)穩定(ding)的狀(zhuang)態。詳細的變更(geng)內容(rong),請參照官網的發(fa)行一覽。


來源于(yu):MySQL解決方(fang)案工程師

相關推薦
分享到: