MySQL8.0.32版本一個嚴重Bug及解決方案
前言
最近業務反饋,8.0.32在使用union和union all的過程中,發現含有中文等特殊字元時查詢返回資料為空。這個影響是比較嚴重的。
具體可參考芬達寫的文章《實戰——研究一個 MySQL8.0.32 最佳化器的嚴重 Bug》,文章的群友就是我本人,哈哈哈……
Bug 影響版本範圍
目前只發現8.0.32版本,其他版本目前沒有。但是一些分支版本也受到了影響,比如percona8.0.32,所以大家要結合自己的環境排查一下。
解決方案
1、關閉條件下推
2、升級版本
MySQL從8.0.16 版本開始,將原來mysql_upgrade的功能內建到MySQL Server的啟動過程中。所以從這個版本以後,更換需要升級的二進位制檔案,重啟服務即可完成升級。
個人更推薦第二中方式升級到8.0.33及以上8.0的小版本。
Bug 修復程式碼簡單解析 (僅供有興趣的讀者參考)
我們檢視官方bug修復的commit就發現,這個bug其實只改了一行程式碼。驚不驚喜,意不意外?哈哈哈……
翻了一下程式碼,這個位置主要是條件下推這個類的一個成員函式,用於解析結果。
修改後的程式碼加了字符集處理。
來自 “ DBA札記 ”, 原文作者:小董學程式設計;原文連結:https://mp.weixin.qq.com/s/2MFVWDul8f75J-QhZxhQZA,如有侵權,請聯絡管理員刪除。
相關文章
- Gitea 釋出 1.0.2 版本,修正幾個嚴重的 bugGit
- Gitea 釋出 1.0.2版本,修正幾個嚴重的bugGit
- oracle ucm 的嚴重bugOracle
- mysql xtrabackup 遭遇嚴重bugMySql
- win10卡頓嚴重怎麼解決 win10卡頓嚴重的解決方法Win10
- 暫緩MongoDB 4.4.2 、4.4.3、 4.4.4版本升級: 存在嚴重BugMongoDB
- [ZT]智慧ABC一嚴重Bug可使任意程式崩潰
- tomcat錯誤資訊解決方案【嚴重:StandardServer.await:create[8005]】TomcatServerAI
- 談談BUG嚴重級別(severity)管理
- Oracle分析函式多層使用時的一個bug及其解決方案Oracle函式
- 故障排除-丟包嚴重的抓包解決
- 記錄一個前端bug的解決過程前端
- 一個小問題的解決方案
- BUG 解決記錄 一
- Linux核心修正5年曆史的嚴重bugLinux
- APP執行緩慢5個原因及解決方案APP
- 【新炬網路名師大講堂】11gR203 RAC一個比較嚴重的bug
- 解決xib自定義tableFooterView一個神奇的bugView
- Java限流及常用解決方案Java
- 討論一個應用的解決方案
- Twitter同步新浪微博的一個解決方案
- K8S 生態週報| Helm v3.8 OCI 支援正式 GA,Docker 新版本修復多個嚴重 bugK8SDocker
- 重點人員管控解決方案
- 邊距重疊以及解決方案BFC
- css邊距重疊的解決方案CSS
- 快取穿透詳解及解決方案快取穿透
- 滑鼠有嚴重的拖拽感很重延遲怎麼解決
- mongodb 對記憶體的嚴重佔用以及解決方法MongoDB記憶體
- MongoDB對記憶體的嚴重佔用以及解決方法MongoDB記憶體
- 少年黑客發現MacOS鑰匙串中的嚴重BUG黑客Mac
- 軟體Bug引發的十次嚴重後果
- 軟體 Bug 引發的十次嚴重後果
- 軟體測試工程師必會:BUG分類及推進解決方案工程師
- IE雙倍邊距BUG 觸發 解決方案
- 記一次JVM FullGC引發嚴重線上事故的定位、分析、解決過程!JVMGC
- Laravel 中使用 PHP7.2+symfony 版本問題(嚴重)LaravelPHP
- 使用 requests 2.11 版本時的 Site ID 型別問題及解決方案型別
- transitionEnd和animationEnd的一個臨時解決方案