可以參考 http://jingyan.baidu.com/article/d5c4b52bef7268da560dc5f8.html
以下是我的安裝過程,及遇到的問題解決
1、下載
地址:http://www.mongodb.org/downloads(32位還是64位自行選擇)。
我下載的是:mongodb-win32-x86_64-2.4.5.zip
2、解壓
把mongodb-win32-x86_64-2.4.5.zip放到某個位置,解壓。我放的是D:\mongodb目錄。
解壓后的路徑為D:\mongodb\Server\3.2\
3. 安裝准備
MongoDB默認的數據目錄為:C:\data\db。如果不用默認目錄,則需要在在mongod.exe命令后加--dbpath參數。
創建數據目錄。我創建的是D:\mongodb\Server\3.2\bin\data\db
創建日志目錄及其文件。我創建的是D:\mongodb\Server\3.2\bin\data\log\mogo.log
4、啟動MongoDB
打開cmd窗口(cmd.exe),進入D:\mongodb\Server\3.2\bin,執行mongod.exe命令,見下圖。
D:\mongodb\Server\3.2\bin>mongod --dbpath d:\mongodb\Server\3.2\bin\data\db --logpath=d:\mongodb\Server\3.2\bin\data\log\mongo.log --nojournal --storageEngine=mmapv1
--logpath 參數是設定日志文件的路徑。
--dbpath 參數是設定數據庫文件的存放路徑。
mongod.exe命令的所有參數選項可通過mongod.exe --help查看。
--nojournal
--storageEngine=mmapv1
5、作為服務進行安裝
使用管理員權限打開windows的cmd窗口,進入D:\mongodb\Server\3.2\bin目錄。
mongod.exe --install --dbpath d:\mongodb\Server\3.2\bin\data\db --logpath=d:\mongodb\Server\3.2\bin\data\log\mongo.log
--install 參數是設定安裝為服務器
設置為服務后,即可在cmd(管理員權限打開的windows cmd窗口)窗口用服務的方式啟動或停止MongoDB。
net start mongodb 啟動mongodb服務
net stop mongodb 啟動mongodb服務
6、進入shell環境界面
進入sheelMongoDB后,在cmd窗口進入D:\mongodb\Server\3.2\bin目錄,輸入mongo.exe,則可以進入shell環境界面。
啟動運行
D:\mongodb\Server\3.2\bin>mongod --install --dbpath d:\mongodb\Server\3.2\bin\da
ta\db --logpath=d:\mongodb\Server\3.2\bin\data\log\mongo.log --nojournal --stora
geEngine=mmapv1
--install 啟動安裝
我的是32位系統 安的過程 中遇到了以下的問題。 報錯
解決方案
32位windows機器上可能出現這種問題,按照它的指示,換一個storage engine就行了
mongod --dbpath= d:\mongodb\Server\3.2\bin\data\db --storageEngine=mmapv1
還有一個錯誤 ,就是服務器名找不到。
http://www.jianshu.com/p/2e7961f9e856
自測這個方法可以解決。
之前MongoDB啟動的時候是蠻正常的,不知道后來啟動報錯了,就把粘貼出來查詢了。最后才知道是由於自己不正常的關閉導致的這個情況。
--摘錄:MongoDB非正常關閉后修復記錄
mongod沒有后台執行,在終端連接非正常斷開后,再次執行mongod報錯,如下所示:
[root@localhost mongodb]# ./bin/mongod ./bin/mongod --help for help and startup options Thu Nov 17 22:42:49 Thu Nov 17 22:42:49 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability. Thu Nov 17 22:42:49 Thu Nov 17 22:42:49 [initandlisten] MongoDB starting : pid=3257 port=27017 dbpath=/data/db/ 32-bit host=localhost Thu Nov 17 22:42:49 [initandlisten] Thu Nov 17 22:42:49 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data Thu Nov 17 22:42:49 [initandlisten] ** seehttp://blog.mongodb.org/post/137788967/32-bit-limitations Thu Nov 17 22:42:49 [initandlisten] ** with --journal, the limit is lower Thu Nov 17 22:42:49 [initandlisten] Thu Nov 17 22:42:49 [initandlisten] db version v2.0.1, pdfile version 4.5 Thu Nov 17 22:42:49 [initandlisten] git version: 3a5cf0e2134a830d38d2d1aae7e88cac31bdd684 Thu Nov 17 22:42:49 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_41 Thu Nov 17 22:42:49 [initandlisten] options: {} ************** Unclean shutdown detected. Please visit http://dochub.mongodb.org/core/repair for recovery instructions. ************* Thu Nov 17 22:42:49 [initandlisten] exception in initAndListen: 12596 old lock file, terminating Thu Nov 17 22:42:49 dbexit: Thu Nov 17 22:42:49 [initandlisten] shutdown: going to close listening sockets... Thu Nov 17 22:42:49 [initandlisten] shutdown: going to flush diaglog... Thu Nov 17 22:42:49 [initandlisten] shutdown: going to close sockets... Thu Nov 17 22:42:49 [initandlisten] shutdown: waiting for fs preallocator... Thu Nov 17 22:42:49 [initandlisten] shutdown: closing all files... Thu Nov 17 22:42:49 [initandlisten] closeAllFiles() finished Thu Nov 17 22:42:49 dbexit: really exiting now
修復方法:
這算是一個Mongod 啟動的一個常見錯誤,非法關閉的時候,lock 文件沒有干掉,第二次啟動的時候檢查到有lock 文件的時候,就報這個錯誤了。
解決方法:進入 mongod 上一次啟動的時候指定的 data 目錄 --dbpath=/data/mongodb
刪除掉該文件:
rm /data/mongodb/mongo.lock --linux
del /data/mongodb/mongo.lock --windows
再執行:
./mongod --repair
啟動:
/usr/local/src/mongodb-linux-x86_64-2.0.2/bin/mongod --port=27017 --pidfilepath=/var/run/mongod.pid --dbpath=/data/mongodb --directoryperdb --nojournal --noauth
OK,問題解決。
正確關閉mongod 的方法:進入mongo shell
use admin
db.shutdownServer()
也可以按照文檔粗暴的殺掉它,它內部應該有KILL信號處理程序。
killall mongod
請不要 kill -9 ,會造成文件數據混亂丟失 repair 也無力回天。
ctrl+c 可以退出mongo的界面 或是ext
好了,成功之后,在瀏覽器打開一下
這樣就成功了,注:有些地方會寫成localhost這里用 ip 測試。有些沒有代理,所以用localhost無法打開。