MySQL 9.4 創新版 (Innovation) 正式發布


MySQL 9.4 創新版 (Innovation) 正式發布,帶來重大特性和修復,本次更新涵蓋字元集支援、防火牆元件、InnoDB 改進、JavaScript 應用程式等。

字元集支援與排序規則 (Collation)

  • 修正 IFNULL() 搭配 LIKE 導致的 ER_CANT_AGGREGATE_2COLLATIONS 錯誤:將 NONE 派生排序規則強度調整得比其他更低,使比較時由對方操作數決定排序規則,且排序規則聚合目前僅考慮相同最高強度的項目,並重新命名 IGNORABLE 為 NULL。

編譯與平台改進

  • 群組複製 (Group Replication):修復 TASK_EVENT_TRACE 的建構錯誤(GCS 模組)
  • macOS 支援 Kerberos (-DWITH_KERBEROS) 並調整狀態緩衝區對齊,改善 M1 性能
  • 升級包含的 libcurl 至 8.14.1;支援 CMake 4(不再支援 3.10 以下)
  • 引入 -DWITH_PROTOBUF=system,可減少建構時間;bzip2 網路庫位置調整(-lbz2)
  • GCC 最低版本要求提高至 11,因此移除對 RHEL7 ARM 的支援

移除與棄用項目

  • 外掛程式(Plugin)API 正逐步淘汰,將由元件(Component)取代,相關選項如 --early-plugin-load 等會觸發警告
  • 棄用 sys 變數 temptable_use_mmap,刪除 MD5() 和 SHA1() 與未來版本規劃移除

防火牆與外掛

  • 新增 “MySQL 企業防火牆元件” 以取代現有插件,外掛將可能被淘汰;帳戶設定將轉為群組設定

InnoDB 優化與修正

  • 改善記憶體洩漏情況與導入表相關錯誤
  • 調整 innodb_change_buffer_max_size 預設值為 5,以平衡 IO 工作負載

安裝與環境注意事項

  • 修復 macOS 上 keyring 元件安裝 bug(--plugin-dir vs --basedir)
  • Debian/Ubuntu 安裝無需 root 權限;RHEL10/Oracle Linux10 支援 RPM / Yum 安裝

JavaScript 儲存程序(Filtering)

  • 修正高記憶體使用下第一次 context.parse() 會引發 MLE 錯誤問題,改為直接拒絕請求

Logging/效能收集

  • 錯誤日誌新增 CPU 線程數與實體內存資訊,提升診斷能力

向量與新功能(Vector /* Functionality Added */)

  • 增加 mysql 客戶端新選項 --commands,可開啟/關閉客戶端指令執行(預設關閉)
  • InnoDB 日誌中增加 buf_page_t / buf_block_t metadata 輸出,用於除錯
  • 群組複製新增錯誤碼 ER_GRP_RPL_APPLIER_THD_KILLED 以區分死掉類型引發考慮

其他錯誤修正 (Bug Fixes)

  • 群組複製:超過 5 分鐘無連接嘗試停止,避免無限重連
  • 查詢優化改善:移除不必要條件導致效能下降的問題
  • NDB Cluster 各種錯誤場景修復,包括重啟、死鎖偵測、列鎖等
  • InnoDB 和其他核心模組中多項 bug 修復(如重建主鍵錯誤、記憶體配置、跨平台兼容等)

留言