INSTALL PLUGIN plugin_name SONAME 'shared_library_name'
此陳述式會安裝伺服器外掛程式。它需要 INSERT
權限,才能對 mysql.plugin
系統資料表執行操作,因為它會在該資料表中加入一列來註冊外掛程式。
plugin_name
是外掛程式的名稱,如同外掛程式描述結構中定義的名稱(請參閱外掛程式資料結構)。外掛程式名稱不區分大小寫。為了達到最大的相容性,外掛程式名稱應限制為 ASCII 字母、數字和底線,因為它們用於 C 原始碼檔案、殼層命令列、M4 和 Bourne 殼層指令碼以及 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
陳述式。停止伺服器,在外掛程式目錄中安裝新的外掛程式程式庫檔案,然後重新啟動伺服器。