Mongodb無法啟動:The default storage engine 'wiredTiger' is not available with this build of mongod


Mongodb無法啟動:The default storage engine 'wiredTiger' is not available with this build of mongod.

 

今天在linux上安裝mongodb后(版本為3.2), 采用命令方式啟動mongdb,結果client登不進去, 看了看日志, 發現日志報錯

 

啟動命令: ./mongod -port=38200 -dbpath=../data/ -logpath=../log/mongodb.log --logappend --journal;tail -f ../log/mongodb.log

客戶端登陸不進去:

[root@centos bin]# ./mongo -port=38200 MongoDB shell version: 3.2.0 connecting to: 127.0.0.1:38200/test 2016-01-05T17:55:27.991+0800 W NETWORK  [thread1] Failed to connect to 127.0.0.1:38200, reason: errno:111 Connection refused 2016-01-05T17:55:27.992+0800 E QUERY    [thread1] Error: couldn't connect to server 127.0.0.1:38200, connection attempt failed : connect@src/mongo/shell/mongo.js:226:14 @(connect):1:6 exception: connect failed      

查看日志記錄, 報錯:

2016-01-05T17:44:48.336+0800 I CONTROL  [initandlisten] db version v3.2.0

2016-01-05T17:44:48.336+0800 I CONTROL  [initandlisten] git version: 45d947729a0315accb6d4f15a6b06be6d9c19fe7 2016-01-05T17:44:48.336+0800 I CONTROL  [initandlisten] allocator: tcmalloc 2016-01-05T17:44:48.336+0800 I CONTROL  [initandlisten] modules: none 2016-01-05T17:44:48.336+0800 I CONTROL  [initandlisten] build environment: 2016-01-05T17:44:48.336+0800 I CONTROL  [initandlisten]     distarch: i686 2016-01-05T17:44:48.336+0800 I CONTROL  [initandlisten]     target_arch: i386 2016-01-05T17:44:48.336+0800 I CONTROL  [initandlisten] options: { net: { port: 38200 }, storage: { dbPath: "../data/", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "../log/mongodb.log" } } 2016-01-05T17:44:48.381+0800 I STORAGE  [initandlisten] exception in initAndListen: 28663 Cannot start server. The default storage engine 'wiredTiger' is not available with this build of mongod. Please specify a different storage engine explicitly, e.g. --storageEngine=mmapv1., terminating 2016-01-05T17:44:48.381+0800 I CONTROL  [initandlisten] dbexit:  rc: 100

 

查閱了一下, mongodb自3.0版本后新增了wiredTiger的數據存儲引擎, 3.2版本后默認采用的wiredTiger, 不知道為何, 我的這個版本不能使用該引擎? 難道是版本的問題? 查看版本:

[root@centos bin]# uname -a Linux centos 2.6.32-431.el6.i686 #1 SMP Fri Nov 22 00:26:36 UTC 2013 i686 i686 i386 GNU/Linux

系統采用的是centos版本.

既然默認的wiredTiger不能用, 那么采用指定引擎為mmapv1吧,這應該可以用了吧.

於是命令變更為:

  ./mongod -port=38200-storageEngine=mmapv1  -dbpath=../data/ -logpath=../log/mongodb.log --logappend --journal;

這時,客戶端登陸, 可以登陸了.

但是服務端會掛在那兒, 如果ctrl+c, 會終止mongodb的運行, 需要再加上參數使之后台運行--fork.

最終命令為:

   ./mongod -port=38200 -storageEngine=mmapv1  -dbpath=../data/ -logpath=../log/mongodb.log --logappend --journal --fork;

至此, 問題解決. 參數可以全部放在一個conf配置文件里面, 命令可以寫成一個腳本.

至於為什么會報這個問題: 即mmapv1和wiredTiger引擎的問題, 后續跟進.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM