MySql管理的一點(diǎn)心得

字號:


    MySql數(shù)據(jù)庫是中小型網(wǎng)站后臺數(shù)據(jù)庫的首選,因?yàn)樗鼘Ψ巧虡I(yè)應(yīng)用是免費(fèi)的.網(wǎng)站開發(fā)者可以搭建一個"Linux+Apache+PHP+MySql" 平臺,這是一個最省錢的高效平臺.在使用MySql進(jìn)行開發(fā)時,MySql自帶的文檔對于新手來說是份很好的參考資料.本文是我在使用MySql中的小小心得。
    當(dāng)前一般用戶的開發(fā)環(huán)境多是Windows或Linux,用戶可以到下載相關(guān)版本進(jìn)行安裝,在 windows中MySql以服務(wù)形式存在,在使用前應(yīng)確保此服務(wù)已經(jīng)啟動,未啟動可用net start mysql命令啟動。而Linux中啟動時可用“/etc/rc.d/init.d/mysqld start"命令,注意啟動者應(yīng)具有管理員權(quán)限。
    剛安裝好的MySql包含一個含空密碼的root帳戶和一個匿名帳戶,這是很大的安全隱患,對于一些重要的應(yīng)用我們應(yīng)將安全性盡可能提高,在這里應(yīng)把匿名帳戶刪除、 root帳戶設(shè)置密碼,可用如下命令進(jìn)行:
    use mysql;
    delete from User where User="";
    update User set Password=PASSWORD('newpassword') where User='root';
    如果要對用戶所用的登錄終端進(jìn)行限制,可以更新User表中相應(yīng)用戶的Host字段,在進(jìn)行了以上更改后應(yīng)重新啟動數(shù)據(jù)庫服務(wù),此時登錄時可用如下類似命令:
    mysql -uroot -p;
    mysql -uroot -pnewpassword;
    mysql mydb -uroot -p;
    mysql mydb -uroot -pnewpassword;
    上面命令參數(shù)是常用參數(shù)的一部分,詳細(xì)情況可參考文檔。此處的mydb是要登錄的數(shù)據(jù)庫的名稱。
    在進(jìn)行開發(fā)和實(shí)際應(yīng)用中,用戶不應(yīng)該只用root用戶進(jìn)行連接數(shù)據(jù)庫,雖然使用root用戶進(jìn)行測試時很方便,但會給系統(tǒng)帶來重大安全隱患,也不利于管理技術(shù)的提高。我們給一個應(yīng)用中使用的用戶賦予最恰當(dāng)?shù)臄?shù)據(jù)庫權(quán)限。如一個只進(jìn)行數(shù)據(jù)插入的用戶不應(yīng)賦予其刪除數(shù)據(jù)的權(quán)限。MySql的用戶管理是通過 User表來實(shí)現(xiàn)的,添加新用戶常用的方法有兩個,一是在User表插入相應(yīng)的數(shù)據(jù)行,同時設(shè)置相應(yīng)的權(quán)限;二是通過GRANT命令創(chuàng)建具有某種權(quán)限的用戶。其中GRANT的常用用法如下:
    grant all on mydb.* to identified by "password" ;
    grant usage on *.* to identified by "password";
    grant select,insert,update on mydb.* to identified by "password";
    grant update,delete on mydb.TestTable to identified by "password";
    若要給此用戶賦予他在相應(yīng)對象上的權(quán)限的管理能力,可在GRANT后面添加WITH GRANT OPTION選項(xiàng)。而對于用插入User表添加的用戶,Password字段應(yīng)用PASSWORD 函數(shù)進(jìn)行更新加密,以防不軌之人竊看密碼。對于那些已經(jīng)不用的用戶應(yīng)給予清除,權(quán)限過界的用戶應(yīng)及時回收權(quán)限,回收權(quán)限可以通過更新User表相應(yīng)字段,也可以使用REVOKE操作。