mySQL的安裝相當(dāng)簡(jiǎn)單,二進(jìn)制版本(針對(duì)某一個(gè)硬件平臺(tái)編譯后的軟件)的安裝只是將文件展開(kāi)到用戶某一目錄下然后配置幾個(gè)參數(shù)就可以。例如你下載的文件為:mSQL-2.0.3.tar.gz,你想把mSQL安裝到/usr/local目錄下,這時(shí),我們需要先將這個(gè)文件拷貝到/usr/local這個(gè)目錄,然后鍵入命令tar zxvf mSQL-2.0.3.tar.gz,這個(gè)命令將展開(kāi)該壓縮文件。一般,mSQL數(shù)據(jù)庫(kù)系統(tǒng)的所有文件都安裝到/usr/local/Hughes目錄下。接著就是配置mSQL數(shù)據(jù)庫(kù)。你所要做的工作就是要修改/usr/local/Hughes目錄下的文件msql.conf。 -
在實(shí)際應(yīng)用中我們改動(dòng)得最多的是mSQL—User 和Admin—User這兩個(gè)參數(shù)。mSQL—User指明運(yùn)行mSQL數(shù)據(jù)庫(kù)服務(wù)程序的用戶,而Admin—User指明能對(duì)mSQL數(shù)據(jù)庫(kù)系統(tǒng)執(zhí)行特權(quán)操作(如:關(guān)閉數(shù)據(jù)庫(kù)服務(wù)程序的運(yùn)行,創(chuàng)建數(shù)據(jù)庫(kù)等操作)的用戶。因此,如果你希望mSQL服務(wù)程序以database這個(gè)用戶運(yùn)行,指定admin這個(gè)用戶能執(zhí)行數(shù)據(jù)庫(kù)操作,你要將mSQL—User和Admin—User所在的行分別改為:mSQL—User = database和Admin—User = admin。另外你還必須將Hughes目錄下的文件和目錄的屬主改為database。在配置完成后,注銷當(dāng)前用戶的身份,重新以msql.conf的參數(shù) mSQL—User設(shè)定的用戶登錄到系統(tǒng),進(jìn)入/usr/local/Hughes/bin目錄鍵入如下的命令:./msql2d &,這樣就啟動(dòng)了mSQL數(shù)據(jù)庫(kù)系統(tǒng)。至于帶源碼的安裝軟件,看一看README和INSTALL這些文件一般就能順利安裝完成。
為了將mSQL集成到用戶的應(yīng)用程序中去,mSQL數(shù)據(jù)庫(kù)系統(tǒng)為用戶提供了一個(gè)C語(yǔ)言的API庫(kù)和一個(gè)解釋器:w3—msql,通過(guò)C語(yǔ)言的API庫(kù),你可以將mSQL集成到用標(biāo)準(zhǔn)C語(yǔ)言開(kāi)發(fā)的應(yīng)用程序中去。而有了w3—msql這個(gè)工具,你可以通過(guò)編寫(xiě)類C語(yǔ)言腳本語(yǔ)言將mSQL數(shù)據(jù)庫(kù)嵌入到html文件中,下面舉一程序?qū)嵗M(jìn)行說(shuō)明。
下面的程序片段要完成的功能是將瀏覽器頁(yè)面上提交上來(lái)的用戶名和口令與表registered—user中的用戶名和口令相比較,如果用戶名和口令正確,將在頁(yè)面上顯示注冊(cè)成功的信息,否則提示用戶注冊(cè)失敗。采用C語(yǔ)言實(shí)現(xiàn)的方法如下所示:
void main(int argc, char ??argv[])
{
//解析用戶提交上來(lái)的用戶名和口令并保存到變量username和password—usr中
…
//創(chuàng)建與本機(jī)的mSQL數(shù)據(jù)庫(kù)系統(tǒng)的套接字
sock=msqlConnect(NULL);
//選擇數(shù)據(jù)庫(kù)test
if (msqlSelectDB(sock,″test″)==-1)
{
//輸出數(shù)據(jù)庫(kù)選擇失敗信息
…
} else
{
sprintf(buff,″select ?? from registered—user where username=′%s′″,username);
//以u(píng)sername查詢表registered—user中的記錄
if (msqlQuery(sock,buff)==-1)
{
//輸出查詢失敗的錯(cuò)誤信息
…
}
//將查詢結(jié)果保存到m—result類型的指針變量 res
res=msqlStoreResult();
//得到查詢結(jié)果的記錄數(shù)
numrow=msqlNumRows(res);
if (numrow==1)
{
//得到當(dāng)前記錄,類型為:m_row
row=msqlFetchRow(res);
//將保存在表中的口令和用戶輸入的口令相比較
if (!strcmp(password_ur,row[2]))
{
//輸出注冊(cè)成功信息
} else
{
//輸出口令不對(duì)的提示信息
}
} else
{
//輸出用戶名輸入出錯(cuò)信息
}
}
//釋放查詢結(jié)果的指針
msqlFreeResult(res);
//關(guān)閉數(shù)據(jù)庫(kù)系統(tǒng)的套接字
msqlClose(sock);
return;
}
以上的例子包含有將mSQL集成到C語(yǔ)言程序中用到的主要函數(shù),這些函數(shù)基本能滿足應(yīng)用程序的需要。如果采用w3—msql能解釋的類C語(yǔ)言嵌入到html文件中,可以達(dá)到同樣的功能。與C語(yǔ)言編寫(xiě)的CGI程序需要編譯不同,腳本語(yǔ)言不需要編譯,該腳本由mSQL數(shù)據(jù)庫(kù)系統(tǒng)提供的CGI程序w3—msql來(lái)解釋執(zhí)行。腳本中主要的代碼段如下所示:
〈HTML〉
〈HEAD〉
〈META HTTP-EQUIV=″Content-Type″ CONTENT=″text/html;charset=iso-8859-1″〉
〈/HEAD〉
〈body TEXT=″#000000″ BACKGROUND=″/icon/back.jpg″ topmargin=″10″〉
〈!
//解析用戶提交上來(lái)的用戶名和口令并
保存到變量username和password—usr中
…
//創(chuàng)建與本機(jī)的mSQL數(shù)據(jù)庫(kù)系統(tǒng)的套接字
$sock = msqlConnect();
//選擇數(shù)據(jù)庫(kù)test
if (msqlSelectDB($sock,″test″)==-1)
{
//輸出數(shù)據(jù)庫(kù)選擇失敗信息
fatal(″錯(cuò)誤 : 無(wú)法與數(shù)據(jù)庫(kù)連接n″);
} else
{
$buff = ″ select ?? from registered—user where username=′$username ′″;
//以u(píng)sername查詢表registered—user中的記錄
if (msqlQuery($sock,$buff)==-1)
{
//輸出查詢失敗的錯(cuò)誤信息
fatal(″查詢錯(cuò)誤n″);
}
//將查詢出來(lái)的結(jié)果保存到查詢結(jié)果的指針變量res中
$res=msqlStoreResult();
//得到查詢結(jié)果的記錄數(shù)目
$numrow=msqlNumRows($res);
if ($numrow==1)
{
//得到當(dāng)前記錄的指針
$row=msqlFetchRow($res);
//將保存在表中的口令和用戶輸入的口令相比較
if (!strcmp($password—ur,$row[2]))
{
//輸出注冊(cè)成功信息
echo(″〈center〉注冊(cè)成功〈/center〉″);
} else
{
//輸出口令不對(duì)的提示信息
echo(″〈center〉您輸入的口令不正確〈/center〉″);
}
} else
{
//輸出用戶名輸入出錯(cuò)信息
echo(″〈center〉您輸入的用戶名不正確〈/center〉″);
}
}
//釋放查詢結(jié)果占用的內(nèi)存
msqlFreeResult($res);
//關(guān)閉數(shù)據(jù)庫(kù)系統(tǒng)的套接字
msqlClose($sock);
〉
〈/BODY〉
〈/HTML〉
以上介紹了在Linux下以mSQL數(shù)據(jù)庫(kù)系統(tǒng)作為后臺(tái)數(shù)據(jù)庫(kù)開(kāi)發(fā)應(yīng)用系統(tǒng)的方法。有了這些基本的方法,我們就能開(kāi)發(fā)出各種基于mSQL數(shù)據(jù)庫(kù)的應(yīng)用系統(tǒng)。
本文出自:億恩科技【www.allwellnessguide.com】
服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|