INSTALL PLUGIN plugin_name SONAME 'shared_library_name'
此敘述會安裝伺服器外掛程式。它需要 INSERT
權限才能存取 mysql.plugin
系統資料表,因為它會在該資料表中新增一列以註冊外掛程式。
plugin_name
是外掛程式在程式庫檔案中包含的外掛程式描述元結構中定義的名稱(請參閱 外掛程式資料結構)。外掛程式名稱不區分大小寫。為了達到最大相容性,外掛程式名稱應限制為 ASCII 字母、數字和底線,因為它們會用在 C 原始程式檔案、Shell 命令列、M4 和 Bourne Shell 腳本以及 SQL 環境中。
shared_library_name
是包含外掛程式碼的共用程式庫名稱。名稱包含檔案名稱副檔名(例如,libmyplugin.so
、libmyplugin.dll
或 libmyplugin.dylib
)。
共用程式庫必須位於外掛程式目錄中(由 plugin_dir
系統變數所指定的目錄)。該程式庫必須位於外掛程式目錄本身,而不是子目錄中。預設情況下,plugin_dir
是由 pkglibdir
設定變數所指定目錄下的 plugin
目錄,但可以透過在伺服器啟動時設定 plugin_dir
的值來變更。例如,在 my.cnf
檔案中設定其值
[mysqld]
plugin_dir=/path/to/plugin/directory
如果 plugin_dir
的值是相對路徑名稱,則會被視為相對於 MySQL 的基本目錄(basedir
系統變數的值)。
INSTALL PLUGIN
會載入並初始化外掛程式碼,以使外掛程式可供使用。外掛程式透過執行其初始化函式來初始化,該函式會處理外掛程式在使用前必須執行的任何設定。當伺服器關閉時,它會為每個已載入的外掛程式執行反初始化函式,以便外掛程式有機會執行任何最終清理。
INSTALL PLUGIN
還會透過在 mysql.plugin
系統表中新增一行來註冊外掛程式,該行會指示外掛程式名稱和程式庫檔案名稱。在正常的啟動順序期間,伺服器會載入並初始化在 mysql.plugin
中註冊的外掛程式。這表示外掛程式只需使用 INSTALL PLUGIN
安裝一次,而不是每次伺服器啟動時都安裝。如果伺服器啟動時使用了 --skip-grant-tables
選項,則不會載入在 mysql.plugin
表中註冊的外掛程式,並且無法使用。
一個外掛程式庫可以包含多個外掛程式。若要安裝其中的每一個外掛程式,請使用單獨的 INSTALL PLUGIN
陳述式。每個陳述式都會指定不同的外掛程式,但它們都會指定相同的程式庫名稱。
INSTALL PLUGIN
會導致伺服器讀取選項 (my.cnf
) 檔案,就像在伺服器啟動期間一樣。這使外掛程式能夠從這些檔案中取得任何相關選項。即使在載入外掛程式之前,也可以將外掛程式選項新增至選項檔案(如果使用 loose
前綴)。也可以解除安裝外掛程式,編輯 my.cnf
,然後再次安裝外掛程式。以這種方式重新啟動外掛程式,使其能夠使用新的選項值,而無需重新啟動伺服器。
如需控制伺服器啟動時個別外掛程式載入的選項,請參閱第 7.6.1 節,「安裝和解除安裝外掛程式」。如果您需要在給定 --skip-grant-tables
選項(告知伺服器不要讀取系統表)時,為單個伺服器啟動載入外掛程式,請使用 --plugin-load
選項。請參閱 第 7.1.7 節,「伺服器命令選項」。
若要移除外掛程式,請使用 UNINSTALL PLUGIN
陳述式。
如需有關外掛程式載入的其他資訊,請參閱第 7.6.1 節,「安裝和解除安裝外掛程式」。
若要查看已安裝哪些外掛程式,請使用 SHOW PLUGINS
陳述式或查詢 INFORMATION_SCHEMA
的 PLUGINS
表。
如果您重新編譯外掛程式庫並需要重新安裝它,您可以使用以下任一種方法
使用
UNINSTALL PLUGIN
解除安裝程式庫中的所有外掛程式,在外掛程式目錄中安裝新的外掛程式庫檔案,然後使用INSTALL PLUGIN
安裝程式庫中的所有外掛程式。此程序的優點是可以在不停機伺服器的情況下使用。但是,如果外掛程式庫包含許多外掛程式,則必須發出許多INSTALL PLUGIN
和UNINSTALL PLUGIN
陳述式。停止伺服器,在外掛程式目錄中安裝新的外掛程式庫檔案,然後重新啟動伺服器。