MongoDB 基礎(一)Windows XP 32位安裝mongodb及其目錄結構和配置
MongoDB是一個提供高效能、高可用性、和自動伸縮的開源的文件資料庫。 MongoDB 是由 c++語言編寫。
文件資料庫(DocumentDatabase):
記錄在MongoDB中稱之為文件,它是列值成對的資料結構元件。MongoDB文件類似於JSON物件。列值可能包括其他文件、陣列、或者文件中的陣列。
當前版本: mongodb-win32-i386-2.6.5
MongoDB 的安裝很簡單。
將mongodb-win32-i386-2.6.5解壓到D盤並更改名稱:
D:\mongodb
Mongodb目錄結構也很簡單:
建立儲存資料庫和錯誤日誌的目錄:
mkdir D:\MongoDB\data\db
mkdir D:\MongoDB\data\log
制定資料目錄和錯誤日誌目錄啟動MongoDB服務,並啟用journal(相當於事務日誌檔案,預設關閉):
D:\mongodb\bin>mongod.exe--dbpath=D:\mongodb\data\db --directoryperdb --logpath=D:\mongodb\data\log\mongodb.log--logappend --journal
資料庫目錄結構:
Journal :事務日誌目錄(j._0 日誌檔案從0編號,可迴圈重用)
mongod.lock
_tmp :臨時資料檔案
local.0 :資料庫檔案,按序號遞增,大小也倍增(64M—128M—256M—512M—1G—最大2G)
local.ns :記錄集合名稱空間和索引名稱空間
客戶端與伺服器資料庫連線是通過TCP/IP socket連線的,預設埠是27017
連線MongoDB:
開啟新的命令列視窗:D:\mongodb\bin>mongo.exe
現在更改為以Windows服務的啟動方式設定服務:
建立配置檔案(方便修改引數):
echo logpath= D:\mongodb\data\log\mongodb.log> "D:\mongodb\mongod.cfg"
echo dbpath= D:\mongodb\data\db>> "D:\mongodb\mongod.cfg"
echo port = 27017>> "D:\mongodb\mongod.cfg"
echo logappend = true>> "D:\mongodb\mongod.cfg"
echo journal = true>> "D:\mongodb\mongod.cfg"
建立Windows服務:
# sc.exe delete MongoDB
sc.exe create MongoDB binPath= "\"D:\mongodb\bin\mongod.exe\" --service --config=\"D:\mongodb\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
啟動服務:
啟動服務出錯:
解決:關閉服務視窗(“計算機管理”視窗)
刪除,重建服務
再執行:D:\mongodb\bin>mongod.exe
解決:發現剛才建立的mongodb服務啟動引數中,沒增加--service(還不清楚是不是這裡出錯)
再關閉服務視窗,刪除重建服務,又報錯
解決:檢視目錄,應該是被我刪除了。第一次想用命令建立服務時,當時發現服務已存在了,直接就原來的刪除了。以至於後續一串錯誤發生。把檔案mongod.exe刪除。找到安裝包,從中拷貝一個過來!
直接在命令列啟動,發現是可以的。那可能是建立服務的腳步有問題!
檢查命令,果然有問題!
配置檔案(mongod.cfg)目錄為:D:\mongodb\mongod.cfg,而命令中錯誤寫為:D:\mongodb\bin\mongod.cfg
--config=\"D:\mongodb\bin\mongod.cfg\""
改為
--config=\"D:\mongodb\mongod.cfg\""
(注:上面建立服務的命令已經改為正確了!~)
好!現在重建服務,成功。啟動服務,成功!~
但是現在連線到mongodb時,每次得訪問bin目錄執行命令:
D:\mongodb\bin>mongo
解決辦法就是將該目錄新增到系統環境變數中:
新增環境變數(注意每個變數間使用分號隔開):
右鍵“我的電腦”—“高階”—“環境變數”—找到“系統變數”—編輯“path”—追加“;D:\mongodb\bin;”
接著在命令列隨意更改變數,再關閉命令列(如):
SET PATH=C:\
(這只是更改當前命令列副本視窗的變數,不會更改系統實際的變數值,從而致使系統重新重新整理變數)
重新開啟命令列,輸入mongo,可以連線進去了!
至此,這裡就完成了!~