MongoDB3.2 使用过一段时间之后,忽然想要搭建一个集群,需要配置下directoryPerDB参数,于是在mongod.conf配置文件storage下加入:
[root@slave1 bin]# cat arbiter.conf
#arbiter.conf
dbpath=/usr/local/mongodb/data/
logpath=/usr/local/mongodb/logs
pidfilepath=/usr/local/mongodb/arbiter.pid
directoryperdb=true
logappend=true
replSet=testrs
bind_ip=192.168.20.66
port=27017
oplogSize=10000
fork=true
noprealloc=true
启动,报错,如下:
[root@slave1 bin]# ./mongod -f arbiter.conf
note: noprealloc may hurt performance in many applications
about to fork child process, waiting until server is ready for connections.
forked process: 74558
ERROR: child process failed, exited with error number 48
启动失败,当前directoryPerDB选项存储引擎有72个选项冲突,你要求true,但是当前存储服务已经设置为false,并且无法改变,程序终止。
解决办法:
1、删除dbPath文件夹下所有文件,重启MongoDB服务; 终于看到久违的成功提示:
[root@slave1 bin]# ./mongod -f arbiter.conf
note: noprealloc may hurt performance in many applications
about to fork child process, waiting until server is ready for connections.
forked process: 74707
child process started successfully, parent exiting