Linux下mongoDB的安裝
第一步:下載安裝包。下載地址:mongoDB官網 http://www.mongodb.org
我下載的版本是:mongodb-linux-i686-2.0.2.tgz(建議不要使用過高版本的,因為我試了很多次就是不成功!)
第二步:在linux中解壓縮安裝程序,通過命令操作:
tar -zxvf mongodb-linux-i686-2.0.2.tgz第三步:我們把mongodb-linux-i686-2.0.2重命名為mongoDB。
第四步:我們在mongodb目錄下新建一個data目錄存放數據、新建一個log目錄存放日志,然后在該目錄下新建一個日志文件,例如我們命名為dblog。
mkdir log mkdir data cd log touch dblog第五步:然后定位到mongodb/bin目錄中,使用mongod命令建立一個mongodb數據庫鏈接,端口號默認設置為27017,數據庫的存放路徑為/mongodb/data,日志路徑為/mongodb/log/dblog。</span>
啟動命令:
./bin/mongod --dbpath data/ --logpath log/dblog all output going to: log/dblog
第六步:使用客戶端來連接該數據庫
重新開啟一個終端,然后切換到mongodb目錄下:
然后使用./bin/mongo命令來連接該數據庫:
./bin/mongo第七步:通過瀏覽器訪問
在瀏覽器地址欄輸入: http://localhost 然后回車訪問
可以看到如下提示:You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number
然后根據提示把端口號加上1000訪問 http://localhost:28017/ 。
就能夠訪問到Monodb的服務端web頁面
第八步: 通過配置文件來配置Mongodb
首先在mongodb目錄下新建一個文件,文件名任意,在這里我取名為:mongodb.conf
然后在配置文件中添加配置信息
port=27017【代表端口號,如果不指定則默認為 27017 】 dbpath=data/ 【數據庫路徑】 logpath=log/mongodb.log 【日志路徑】 logappend=true 【日志文件自動累加,而不是覆蓋】
./bin/mongod -f mongodb.conf all output going to: log/dblog然后訪問方式和之前的一樣。
我遇到的問題:
摘錄: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] ** see http://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 visithttp://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啟動:
./bin/mongod -f mongodb.conf all output going to: log/dblog
OK,問題解決。
正確關閉mongod 的方法:進入mongo shell
use admin
db.shutdownServer()
也可以按照文檔粗暴的殺掉它,它內部應該有KILL信號處理程序。
killall mongod 或 pkill mongod請不要 kill -9 ,會造成文件數據混亂丟失 repair 也無力回天。(注意:不要用kill -9 PID 來殺死mongoDB進程,這樣會導致mongoDB的數據損壞,用kill -2 殺死進程。)
ctrl+c 可以退出mongo的界面 或是ext
參考資料:http://blog.csdn.net/black_ox/article/details/8599501
http://www.cnblogs.com/YOUCAN/archive/2013/01/27/2879121.html