SQLite是一個(gè)類似于Access 的文件型數(shù)據(jù)庫(kù),本博客對(duì)其功能與用法都作了比較詳細(xì)的介紹。這里談到的是SQLiteManager的遠(yuǎn)程維護(hù)的問(wèn)題。
首先是一般的日程維護(hù),比如查看結(jié)構(gòu)、修改某些記錄等。你也許會(huì)覺(jué)得,文件型數(shù)據(jù)庫(kù)只能下載到本地才能維護(hù),那完全不是這么回事,因?yàn)槲覀冇幸粋€(gè)很好的管理工具SQLiteManager,這個(gè)工具我在之前的文章也介紹過(guò)。
在正式講如何遠(yuǎn)程維護(hù)之前,我們明白SQLiteManager對(duì)數(shù)據(jù)庫(kù)維護(hù)的機(jī)制。在初用 SQLiteManager的時(shí)候,我們一般是通過(guò)絕對(duì)路徑來(lái)維護(hù)對(duì)數(shù)據(jù)庫(kù)的連接的。在本地的話,這個(gè)路徑是可以用的,但是在虛擬主機(jī)上,這種方式就失效 了,因?yàn)槟惚緳C(jī)上的鏈接跟你在虛擬主機(jī)上的連接肯定不太一樣,甚至操作系統(tǒng)都可能不一樣。我們仔細(xì)研究就會(huì)發(fā)現(xiàn),SQLiteManager是通過(guò)一個(gè)在 include目錄下的名為config.db的文件來(lái)保存這些配置的,這本身就是一個(gè)SQLite數(shù)據(jù)庫(kù),我們就會(huì)想,我們有沒(méi)有可能用相對(duì)路徑來(lái)解決 這個(gè)問(wèn)題呢?結(jié)論是肯定的。
首先我們?cè)诒镜亟鈮篠QLiteManager,將config.db本身用SQLiteManager管理起來(lái)。只有這樣,我們才能自如地進(jìn)行后面的控 制。然后用SQLiteManager瀏覽config.db下面的database表,將含有config.db的這條記錄的location 字段值由原來(lái)的絕對(duì)路徑改為include/config.db。然后就可以把SQLiteManager整個(gè)傳入遠(yuǎn)程虛擬主機(jī)。
在虛擬主機(jī)上,我們就可以運(yùn)行SQLiteManager了。然后在config.db下面database表中加入你要管理的數(shù)據(jù)庫(kù)的一條記錄,這條記錄的location請(qǐng)用相對(duì)路徑。如果是上一級(jí)目錄下的請(qǐng)用..來(lái)回退。
這樣的話,你的遠(yuǎn)程SQLite數(shù)據(jù)庫(kù)就可以很方便地管理了。這 里值得注意的是,你不要把你的鏈接暴露出來(lái)。也就是說(shuō),你自己要訪問(wèn)的話,直接在瀏覽器的地址欄中輸入,而不要在你的頁(yè)面上做任何到 SQLiteManager的鏈接,也建議你把SQLiteManager的目錄改一個(gè)名字,以免好事之徒嘗試。否則會(huì)帶來(lái)很大的安全隱患。
第二個(gè)問(wèn)題是平常數(shù)據(jù)庫(kù)要經(jīng)常備份,備份很簡(jiǎn)單,你下載到本地就行了。因?yàn)樘摂M主 機(jī)提供商的某個(gè)調(diào)整、黑客的某次攻擊,都可能會(huì)導(dǎo)致你的數(shù)據(jù)庫(kù)不可用。這里一個(gè)很值得注意的是數(shù)據(jù)庫(kù)的恢復(fù)的問(wèn)題。你以為直接把備份的數(shù)據(jù)庫(kù)傳上去就可以 了。其實(shí)這是不可行的,因?yàn)樵谀慊謴?fù)的過(guò)程中,會(huì)有人不斷地訪問(wèn)你的站點(diǎn),這時(shí)候會(huì)導(dǎo)致你的數(shù)據(jù)庫(kù)毀壞,從而恢復(fù)不成功。有兩個(gè)辦法可以解決這個(gè)問(wèn)題,一 是關(guān)閉站點(diǎn),二是用一個(gè)不同于你原數(shù)據(jù)庫(kù)的名字上傳,然后傳完之后,把原有數(shù)據(jù)庫(kù)刪除,再改名。后者應(yīng)該是最好的。
好了,這也是本人幾個(gè)月來(lái)的一點(diǎn)心得,現(xiàn)在拿出來(lái)跟大家分享,希望能對(duì)大家有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選