首先,到網站www.hughes.com.au註冊後就能免費下載該軟體的最新版本。
mSQL的安裝相當簡單,二進位版本(針對某一個硬體平台編譯後的軟體)的安裝只
是將檔案展開到使用者某一目錄下然後配置幾個參數就可以。例如你下載的檔案為:
mSQL-2.0.3.tar.gz,你想把mSQL安裝到/usr/local目錄下,這時,我們需要先將
這個檔案拷貝到/usr/local這個目錄,然後鍵入命令tar zxvf mSQL-
2.0.3.tar.gz,這個命令將展開該壓縮檔。一般,mSQL資料庫系統的所有檔案都
安裝到/usr/local/Hughes目錄下。接著就是配置mSQL資料庫。你所要做的工作就
是要修改/usr/local/Hughes目錄下的檔案msql.conf。
在實際應用中我們改動得最多的是mSQL—User 和Admin—User這兩個參數。mSQL
—User指明運行mSQL資料庫服務程式的使用者,而Admin—User指明能對mSQL資料庫系
統執行特權操作(如:關閉資料庫服務程式的運行,建立資料庫等操作)的使用者。因
此,如果你希望mSQL服務程式以database這個使用者運行,指定admin這個使用者能執
行資料庫操作,你要將mSQL—User和Admin—User所在的行分別改為:mSQL—User =
database和Admin—User = admin。另外你還必須將Hughes目錄下的檔案和目錄的屬
主改為database。在配置完成後,登出目前使用者的身份,重新以msql.conf的參數
mSQL—User設定的使用者登入到系統,進入/usr/local/Hughes/bin目錄鍵入如下的命
令:./msql2d &,這樣就啟動了mSQL資料庫系統。至於帶源碼的安裝軟體,看一
看README和INSTALL這些檔案一般就能順利安裝完成。
為了將mSQL整合到使用者的應用程式中去,mSQL資料庫系統為使用者提供了一個C
語言的API庫和一個解譯器:w3—msql,通過C語言的API庫,你可以將mSQL整合到用
標準C語言開發的應用程式中去。而有了w3—msql這個工具,你可以通過編寫類C語
言指令碼語言將mSQL資料庫嵌入到html檔案中,下面舉一程式執行個體進行說明。
下面的程式片段要完成的功能是將瀏覽器頁面上提交上來的使用者名稱和口令與表
registered—user中的使用者名稱和口令相比較,如果使用者名稱和口令正確,將在頁面上
顯示註冊成功的資訊,否則提示使用者註冊失敗。採用C語言實現的方法如下所示:
void main(int argc, char argv[])
{
//解析使用者提交上來的使用者名稱和口令並儲存到變數username和password—usr中
…
//建立與原生mSQL資料庫系統的通訊端
sock=msqlConnect(NULL);
//選擇資料庫test
if (msqlSelectDB(sock,″test″)==-1)
{
//輸出資料庫選擇失敗資訊
…
} else
{
sprintf(buff,″select from registered—user where username=′%s′″,
username);
//以username查詢表registered—user中的記錄
if (msqlQuery(sock,buff)==-1)
{
//輸出查詢失敗的錯誤資訊
…
}
//將查詢結果儲存到m—result類型的指標變數 res
res=msqlStoreResult();
//得到查詢結果的記錄數
numrow=msqlNumRows(res);
if (numrow==1)
{
//得到目前記錄,類型為:m_row
row=msqlFetchRow(res);
//將儲存在表中的口令和使用者輸入的口令相比較
if (!strcmp(password_ur,row[2]))
{
//輸出註冊成功資訊
} else
{
//輸出口令不對的提示資訊
}
} else
{
//輸出使用者名稱輸入出錯資訊
}
}
//釋放查詢結果的指標
msqlFreeResult(res);
//關閉資料庫系統的通訊端
msqlClose(sock);
return;
}
以上的例子包含有將mSQL整合到C語言程式中用到的主要函數,這些函數基本
能滿足應用程式的需要。如果採用w3—msql能解釋的類C語言嵌入到html檔案中,可
以達到同樣的功能。與C語言編寫的CGI程式需要編譯不同,指令碼語言不需要編譯,
該指令碼由mSQL資料庫系統提供的CGI程式w3—msql來解釋執行。指令碼中主要的程式碼片段
如下所示:
〈HTML〉
〈HEAD〉
〈META HTTP-EQUIV=″Content-Type″ CONTENT=″text/html;charset=iso-
8859-1″〉
〈/HEAD〉
〈body TEXT=″#000000″ BACKGROUND=″/icon/back.jpg″ topmargin=″10″〉
〈!
//解析使用者提交上來的使用者名稱和口令並
儲存到變數username和password—usr中
…
//建立與原生mSQL資料庫系統的通訊端
$sock = msqlConnect();
//選擇資料庫test
if (msqlSelectDB($sock,″test″)==-1)
{
//輸出資料庫選擇失敗資訊
fatal(″錯誤 : 無法與資料庫連接n″);
} else
{
$buff = ″ select from registered—user where username=′$username ′″;
//以username查詢表registered—user中的記錄
if (msqlQuery($sock,$buff)==-1)
{
//輸出查詢失敗的錯誤資訊
fatal(″查詢錯誤n″);
}
//將查詢出來的結果儲存到查詢結果的指標變數res中
$res=msqlStoreResult();
//得到查詢結果的記錄數目
$numrow=msqlNumRows($res);
if ($numrow==1)
{
//得到目前記錄的指標
$row=msqlFetchRow($res);
//將儲存在表中的口令和使用者輸入的口令相比較
if (!strcmp($password—ur,$row[2]))
{
//輸出註冊成功資訊
echo(″〈center〉註冊成功〈/center〉″);
} else
{
//輸出口令不對的提示資訊
echo(″〈center〉您輸入的口令不正確〈/center〉″);
}
} else
{
//輸出使用者名稱輸入出錯資訊
echo(″〈center〉您輸入的使用者名稱不正確〈/center〉″);
}
}
//釋放查詢結果佔用的記憶體
msqlFreeResult($res);
//關閉資料庫系統的通訊端
msqlClose($sock);
〉
〈/BODY〉
〈/HTML〉
以上介紹了在Linux下以mSQL資料庫系統作為後台資料庫開發應用系統的方
法。有了這些基本的方法,我們就能開發出各種基於mSQL資料庫的應用系統。