擴充 MySQL 9.0  /  MySQL 外掛程式 API  /  編寫外掛程式

4.4 編寫外掛程式

若要建立外掛程式庫,您必須提供必要的描述符資訊,指出程式庫檔案包含哪些外掛程式,並為每個外掛程式編寫介面函數。

每個伺服器外掛程式都必須有一個提供外掛程式 API 資訊的一般描述符,以及一個針對特定類型外掛程式提供外掛程式介面資訊的類型專屬描述符。所有外掛程式類型的一般描述符結構都相同。類型專屬描述符的結構因外掛程式類型而異,並取決於外掛程式需要執行的操作要求。伺服器外掛程式介面也允許外掛程式公開狀態和系統變數。這些變數會透過 SHOW STATUSSHOW VARIABLES 陳述式以及對應的 INFORMATION_SCHEMA 表格顯示。

對於用戶端外掛程式,架構稍微不同。每個外掛程式都必須有一個描述符,但沒有分為單獨的一般描述符和類型專屬描述符。相反地,描述符的開頭是一組適用於所有用戶端外掛程式類型的固定成員,而這些通用成員之後接著任何實作特定外掛程式類型所需的其他成員。

伺服器外掛程式包含會成為執行中伺服器一部分的程式碼,因此當您編寫外掛程式時,您會受到其他適用於編寫伺服器程式碼的所有約束的約束。例如,如果您嘗試使用 libstdc++ 程式庫中的函數,可能會發生問題。這些約束可能會在伺服器的未來版本中變更,因此伺服器升級可能會需要修改原本為較舊伺服器編寫的外掛程式。如需這些約束的相關資訊,請參閱MySQL 原始碼組態選項處理編譯 MySQL 時的問題

用戶端外掛程式編寫者應避免依賴呼叫應用程式擁有哪些符號,因為您無法確定哪些應用程式將會使用此外掛程式。