MySQL 8.4 參考手冊  /  升級 MySQL  /  升級疑難排解

3.13 升級疑難排解

  • MySQL 8.3 執行個體中,表格的 .frm 檔案與 InnoDB 資料字典之間的結構描述不符,可能會導致升級至 MySQL 8.4 失敗。此類不符可能是因為 .frm 檔案損毀所致。為了解決此問題,請在再次嘗試升級之前,傾印並還原受影響的表格。

  • 如果發生問題,例如新的 mysqld 伺服器無法啟動,請確認您沒有先前安裝的舊 my.cnf 檔案。您可以使用 --print-defaults 選項檢查 (例如,mysqld --print-defaults)。如果此命令顯示的內容不只是程式名稱,則表示您有一個作用中的 my.cnf 檔案,會影響伺服器或用戶端運作。

  • 如果升級後,您在編譯的用戶端程式中遇到問題,例如 指令不同步 或非預期的核心傾印,則可能是您在編譯程式時使用了舊的標頭或程式庫檔案。在這種情況下,請檢查 mysql.h 檔案和 libmysqlclient.a 程式庫的日期,以確認它們來自新的 MySQL 發行版本。如果不是,請使用新的標頭和程式庫重新編譯您的程式。如果程式庫的主要版本號碼已變更 (例如,從 libmysqlclient.so.20 變更為 libmysqlclient.so.21),則針對共用用戶端程式庫編譯的程式可能也需要重新編譯。

  • 如果您使用給定的名稱建立了可載入的函式,並將 MySQL 升級至實作具有相同名稱的新內建函式的版本,則可載入的函式將無法存取。為了修正此問題,請使用 DROP FUNCTION 刪除可載入的函式,然後使用 CREATE FUNCTION 以不同的非衝突名稱重新建立可載入的函式。如果新版本的 MySQL 實作具有與現有儲存函式相同名稱的內建函式,情況也相同。如需有關伺服器如何解讀對不同類型函式的參照的規則,請參閱 第 11.2.5 節,〈函式名稱剖析與解析〉

  • 如果由於 第 3.6 節,〈準備安裝以進行升級〉中概述的任何問題而導致升級至 MySQL 8.4 失敗,伺服器會將所有變更還原至資料目錄。在這種情況下,請移除所有重做記錄檔,並在現有的資料目錄中重新啟動 MySQL 8.3 伺服器,以解決錯誤。重做記錄檔 (ib_logfile*) 預設位於 MySQL 資料目錄中。修正錯誤後,請在再次嘗試升級之前執行慢速關機 (方法是設定 innodb_fast_shutdown=0)。