3.5 執行 C API 客戶端程式

如果升級後,您在已編譯的客戶端程式中遇到問題,例如 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_PATHLD_LIBRARY 環境變數。

  • 在 macOS 上,將 libmysqlclient.dylib 所在的目錄路徑新增至 DYLD_LIBRARY_PATH 環境變數。

  • 將共享程式庫檔案(例如 libmysqlclient.so)複製到系統搜尋的某個目錄(例如 /lib),並透過執行 ldconfig 來更新共享程式庫資訊。請務必複製所有相關檔案。共享程式庫可能以多個名稱存在,並使用符號連結來提供替代名稱。