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

时间:2012-09-24 16:18:38

标签: mongodb

自从我更改dbpath中的/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
  • 我将所有者和群组从root更改为nick。试图改回来,但它似乎没有解决任何问题。
  • 我使用Ruby on Rails 3.2.8运行Ubuntu 12.10 Beta 1和Mongo 2.2.0

4 个答案:

答案 0 :(得分:15)

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

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

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

/etc/mongodb.conf完全被忽略,除非明确指示。

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

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

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

答案 1 :(得分:9)

事实证明,我需要将所有者和群组设置为mongodb。当我将文件转移到新目录时,我已将所有者和群组设置为我的用户帐户nick,并且还尝试了root,但两者均无效。

为此,请执行以下命令:

sudo chown mongodb /home/nick/appdev/mongodb -R
sudo chgrp mongodb /home/nick/appdev/mongodb -R

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

ls -l /home/nick/appdev/mongodb

答案 2 :(得分:1)

按照建议检查数据,日志和日志文件夹中的所有权限后,通过授予/ tmp文件夹中锁文件的权限来解决我的问题

sudo chown mongod:mongod mongodb-27017.sock 

我将其作为AWS Amazon Linux实例运行。我通过执行下面的mongod用户计算出来,然后研究错误代码。它可能对其他故障排除很有用。

sudo -S -u mongod mongod -f /etc/mongod.conf

答案 3 :(得分:0)

MongoDB 1.6非常陈旧,最新的生产版本是2.2,其中包含大量的错误修复和增强功能,自1.6起。

我是否更正你没有通过yum或aptitude等软件包管理器安装1.6?我不相信目前有1.6的包装。因此,mongod表现正常,因为您尚未使用控制脚本启动MongoDB。

有关配置文件选项,请参阅此link