本文作为笔记,整理MongoDB安装过程中遇到的问题,该问题是因为32位和64位的包的启动方式有所区别导致的,之前搜到的资料都是说:将安装包解压之后,创建一个默认的data和log文件,然后通过命令(32位不适用):
./mongod --dbpath=/usr/local/mongodb/data/ --logpath=/usr/local/mongodb/logfile --fork
但是对于32位的启动时会出现如下的错误:
2016-07-23T07:12:35.375-0700 W CONTROL [main] 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
2016-07-23T07:12:35.375-0700 I CONTROL [main]about to fork child process, waiting until server is ready for connections.
forked process: 2826
ERROR: child process failed, exited with error number 100
解决方案:
1. 将安装包解压之后,创建一个默认的data和log文件
2. export PATH=/usr/local/mongodb/bin:$PATH
3.
/usr/local/mongodb/bin/mongod --dbpath=/data/db --storageEngine=mmapv1
只用--journal来进行启动会出现如下的信息:
2016-07-23T20:17:36.297-0700 I CONTROL [initandlisten] MongoDB starting : pid=2784 port=27017 dbpath=../data/ 32-bit host=hadoop
2016-07-23T20:17:36.303-0700 I CONTROL [initandlisten] db version v3.2.4
2016-07-23T20:17:36.303-0700 I CONTROL [initandlisten] git version: e2ee9ffcf9f5a94fad76802e28cc978718bb7a30
2016-07-23T20:17:36.303-0700 I CONTROL [initandlisten] allocator: tcmalloc
2016-07-23T20:17:36.303-0700 I CONTROL [initandlisten] modules: none
2016-07-23T20:17:36.303-0700 I CONTROL [initandlisten] build environment:
2016-07-23T20:17:36.303-0700 I CONTROL [initandlisten] distarch: i686
2016-07-23T20:17:36.303-0700 I CONTROL [initandlisten] target_arch: i386
2016-07-23T20:17:36.303-0700 I CONTROL [initandlisten] options: { storage: { dbPath: "../data/", journal: { enabled: true } } }
2016-07-23T20:17:36.505-0700 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-07-23T20:17:36.505-0700 I CONTROL [initandlisten] dbexit: rc: 100