如果在升級後,您在編譯的客戶端程式中遇到問題,例如 Commands out of sync
或意外的核心傾印,則這些程式可能是使用舊的標頭或程式庫檔案編譯的。在這種情況下,請檢查用於編譯的 mysql.h
標頭檔和 libmysqlclient.a
程式庫的日期,以確認它們是否來自新的 MySQL 發行版本。如果不是,請使用新的標頭和程式庫重新編譯這些程式。如果程式是針對共用客戶端程式庫編譯的,並且程式庫的主要版本號已變更(例如,從 libmysqlclient.so.17
變更為 libmysqlclient.so.18
),則也可能需要重新編譯。
主要共用客戶端程式庫版本決定了相容性。(例如,對於 libmysqlclient.so.18.1.0
,主要版本為 18。)隨較新版本的 MySQL 提供的程式庫可直接取代主要版本號碼相同的舊版本。只要主要程式庫版本相同,您就可以升級程式庫,而舊的應用程式應能繼續使用它。
當您嘗試執行 MySQL 程式時,執行階段可能會發生未定義的參考錯誤。如果這些錯誤指定了以 mysql_
開頭的符號,或指出找不到 libmysqlclient
程式庫,則表示您的系統無法找到共用的 libmysqlclient.so
程式庫。解決此問題的方法是告訴您的系統在該程式庫所在的目錄中搜尋共用程式庫。使用下列適用於您系統的任何方法
將
libmysqlclient.so
所在的目錄路徑新增至LD_LIBRARY_PATH
或LD_LIBRARY
環境變數。在 macOS 上,將
libmysqlclient.dylib
所在的目錄路徑新增至DYLD_LIBRARY_PATH
環境變數。將共用程式庫檔案(例如
libmysqlclient.so
)複製到系統搜尋的某些目錄(例如/lib
),並透過執行ldconfig
更新共用程式庫資訊。請務必複製所有相關檔案。共用程式庫可能以多個名稱存在,並使用符號連結來提供替代名稱。