如何强制mongodb服务使用/etc/mongodb.conf?

时间:2014-02-19 20:50:02

标签: mongodb

相关问题,未解决问题:MongoDB not using /etc/mongodb.conf after I changed dbpath

在Ubuntu 12.04上。 $ mongod --version = db version v2.4.9

我想使用/etc/mongodb.conf的mongo服务(我认为开箱即用,但显然不是这样)。

$ cat /etc/mongodb.conf | grep dbpath
dbpath=/home/xyz/mongodb

$ cat /etc/mongodb.conf | grep logpath
logpath=/home/xyz/mongodb-logs

$ ll /home/xyz| grep mongo
drwxrwxr-x  2 mongodb mongodb  4096 Feb 19 11:58 mongodb/
drwxrwxr-x  2 mongodb mongodb  4096 Feb 19 11:58 mongodb-logs/

(说明说它应该是mongod用户,但是不存在,而mongodb没有,说明不正确?)

但每当我启动mongod时,它都会尝试使用/ data / db:

ERROR: dbpath (/data/db/) does not exist.

我查看了init.d脚本,但没有看到配置路径的任何选项:

$ cat  /etc/init.d/mongodb | grep config
# release without the 'show-config' command (introduced in
    initctl show-config -e "$JOB"|grep -q '^  start on' || DISABLED=1

当我重新启动服务时,它似乎立即停止:

$ sudo service mongodb restart
stop: Unknown instance: 
mongodb start/running, process 2495
$ sudo service mongodb status
mongodb stop/waiting

这是一个错误吗?它似乎忽略了配置文件。我知道我可以使用--dbpath或--config启动它,但如果没有提供dbpath,它不应该是读取配置文件吗?由于服务无法启动(显然)我在哪里可以找到导致它失败的错误?

1 个答案:

答案 0 :(得分:2)

我遇到了类似的问题(在v3.2上),原因是我的/etc/mongod.conf错误。我有以下内容:

replication:
  replSet: rs0

应该是:

replication:
  replSetName: rs0

通过sudo service mongod start启动mongod失败,在日志中没有任何内容。修复配置允许mongod启动。

这实际上是在RHEL上,我验证了init脚本正在传递--config /etc/mongod.conf。我假设它在Ubuntu上是一样的。