MySQL UDF 資料庫

安裝UDF程式庫 現成MySQL功能輕鬆擴充

2013-05-08
使用MySQL時,只要撰寫程式的內容符合UDF架構的規範,即可撰寫自定義的函數來提升MySQL的功能。本文將介紹如何安裝此類UDF程式庫來擴充MySQL資料庫的功能。
只要談起開源碼社群中的資料庫解決方案,相信大家第一個想到的應該會是MySQL。MySQL是一種關聯式的資料庫軟體,挾著其優異的功能及免費的優勢,早已成為許多技術人員在選擇資料庫解決方案時的不二人選。

MySQL除了提供相關的資料庫功能外,更提出「使用者自訂函數」(User Define Function,UDF)架構,只要撰寫的程式內容符合此架構的規範,即可撰寫自定義的函數來提升MySQL的功能。

在本文之中,筆者將介紹如何安裝此類UDF程式庫來擴充MySQL資料庫的功能。本次所使用的套件軟體如表1所示。

表1 解決方案所需套件清單

安裝UDF程式庫

這裡將不多談MySQL的安裝,筆者習慣以原始碼安裝,在此假設讀者已經安裝MySQL 5.5.28版,而且安裝的路徑為「 /usr/local/mysql55」。

首先簡介「http://www.mysqludf.org/」中所搜集的UDF程式庫,而後再從中取得幾個常用的UDF程式庫來安裝,UDF程式庫簡介如表2所示。

表2 UDF程式庫簡介

在簡單介紹該網站上的UDF程式庫相關用途後,接下來從中選取幾個常用的UDF程式庫進行安裝。

安裝lib_mysqludf_log

lib_mysqludf_log程式庫的主要目的,在於擴充MySQL資料庫的Log檔案寫入功能,使用者可自行利用其所提供的函數(名稱為log_error())。在執行SQL指令時也可自行定義寫入的Log訊息內容,並直接將相關的Log寫入系統的檔案中,安裝步驟如下:

首先下載lib_mysqludf_log程式庫原始碼。至網址「https://github.com/mysqludf/lib_mysqludf_log」取得相關原始碼,如圖1所示,下載回來的檔案名稱為master.zip,再以unzip解壓縮,執行指令為「unzip master.zip」。


▲圖1 下載lib_mysqludf_log程式庫原始碼。

然後,輸入指令「cd lib_mysqludf_log-master/」進入原始碼目錄,並利用指令「gcc -Wall -I/usr/local/mysql55/include -I. -shared lib_mysqludf_log.c -o lib_mysqludf_log.so」編譯lib_mysqludf_log程式庫,將MySQL資料庫安裝在「/usr/local/mysql55/include」目錄。由於該目錄並非系統的標準目錄,所以必須另外指定目錄,以便在編譯的過程中能夠找到相關MySQL的檔案位置(可以利用參數「-I/usr/local/mysql55/include」來指定)。

利用指令「mysql -u root -p [資料庫密碼]」,登入至MySQL資料庫的管理介面中。接下來,若有mysql>字樣的指令,即表示在MySQL的管理介面內所執行的SQL指令。

編譯完成後,需要知道MySQL資料庫從那個目錄載入UDF程式庫,可利用顯示plugin_dir變數的內容來得知MySQL資料庫載入UDF程式庫的目錄(此即UDF程式庫需放置的目錄位置)。

在mysql>提示字元下執行「show global variables like 'plugin_dir';」,得知目錄位置為「/usr/local/mysql55/lib/plugin/」,執行過程如圖2所示。隨後在mysql>提示字元後面輸入「exit」,登出MySQL管理介面。


▲圖2 查詢MySQL資料庫載入UDF程式庫的目錄。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!