更改dbpath后,MongoDB没有使用/etc/mongodb.conf

Nic*_*ick 14 mongodb

自从我改变了dbpathin /etc/mongodb.conf,MongoDB没有自动启动,也没有使用新的dbpath.在更改之前,MongoDB将在计算机启动时运行,我能够简单地运行命令mongo进入控制台或启动我的Ruby on Rails服务器而没有任何问题.

在我进行修改之后(为了切换到具有更多空间的新驱动器),我能够使一切工作的唯一方法是手动运行命令mongod --config /etc/mongodb.conf.如果我不运行它,似乎服务没有运行和运行没有--config选项给我以下错误:ERROR: dbpath (/data/db/) does not exist.即使配置文件没有说明data/db.

其他一些说明:

  • 除了改变/etc/mongodb.conf,我感动了所有的文件出来/var/lib/mongodb,进入/home/nick/appdev/mongodb.
  • 我改变了所有者和组从rootnick.尝试改变它,但它似乎没有解决任何问题.
  • 我正在使用Ruby on Rails 3.2.8运行Ubuntu 12.10 Beta 1和Mongo 2.2.0

kma*_*man 19

关于上述问题的后续跟进......

将数据库移动到ec2上的ebs后,我遇到了类似的问题.

事实证明,只运行mongod仍然将dbpath指向/ data/db /(存在).

/etc/mongodb.conf完全被忽略,除非专门针对.

我设法通过使用指令--config或只是--dbpath(两个工作)来解决这个问题但是我想知道mongod默认从哪里开始......?!

我无法在任何地方找到并覆盖这些默认值.任何人 ?

注意:我对mongod的这种行为感到非常恼火......这只是糟糕的设计和糟糕的文档.

  • 我很乐意将此作为评论,但对其他用户的帖子发表评论"你必须有50个评论的声誉" (5认同)
  • 由于这不是问题的解决方案,因此最好留下对原始问题的评论而不是答案. (3认同)
  • 因为它比其他“解决方案”要好。。。 (2认同)

Nic*_*ick 9

事实证明,我需要将所有者和组设置为mongodb.当我将文件传输到新目录时,我已将所有者和组设置为我的用户帐户nick并尝试过root,但两者都没有.

为此,请执行以下命令:

sudo chown mongodb /home/nick/appdev/mongodb -R
sudo chgrp mongodb /home/nick/appdev/mongodb -R
Run Code Online (Sandbox Code Playgroud)

要确认它是否有效,您可以使用以下命令检查文件权限:

ls -l /home/nick/appdev/mongodb
Run Code Online (Sandbox Code Playgroud)

  • 尼克...感谢您的更新。抱歉,几天前我读到该问题时,我想念您更改所有权的原始说明中的那部分。这是因为mongod在mongodb用户下运行,该用户在安装时通过.deb软件包进行配置。您也可以离开目录,由尼克拥有,并通过使用“ chmod”的“组”或“全部”授予mongodb写入权限。 (2认同)