Linux下mongoDB的安裝

jopen 9年前發布 | 11K 次閱讀 MongoDB NoSQL數據庫

    第一步:下載安裝包。下載地址: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 【日志文件自動累加,而不是覆蓋】


    啟動mongoDB服務:
./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



 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!