无法在Ubuntu 11.04上重启mongodb

时间:2012-04-09 11:33:05

标签: mongodb

我已安装mongodb,当我输入以下命令时,我收到这些消息

root@amila:~# service mongodb status    
mongodb stop/waiting
root@amila:~# service mongodb restart    
restart: Unknown instance:     
root@amila:~# service mongodb stop    
stop: Unknown instance: 

我想重启mongodb.但无法重启。

编辑: 这是/etc/mongodb.conf

DBPATH =的/ var / lib中/ mongodb的 日志路径= /变种/数/ mongodb的/ mongodb.log

logappend =真

bind_ip = 127.0.0.1
auth = true

8 个答案:

答案 0 :(得分:11)

给定start命令的输出,这是正确启动的。当您运行状态时,它似乎已停止。您需要查看日志文件:

/var/log/mongodb/mongodb.log

这将告诉你为什么mongod正在停止。有几个可能的原因,但没有看到输出,将很难明确回答。我的一般建议:

  1. 不要使用bind_ip - 一般来说这是一个坏主意更新(2016):删除它是因为导致我在2012年写回来的bind_ip的问题已得到修复,它是现在甚至在官方包装中默认使用。值得尝试的是没有将设置作为故障排除步骤,但一般情况下使用它并不是一个坏主意。
  2. 检查端口27017上运行的其他内容
  3. 即使您要使用默认的
  4. ,也要在mongodb.conf文件中明确指定端口

    最后,看看这个答案,了解如何修复文件权限,以防万一出现问题(通常是因为在某些时候以root身份运行):

    mongodb crashes after unexpected shutdown

答案 1 :(得分:9)

对不起,如果你考虑这个“SO考古学”。

我不知道这是否是同一个问题,但我现在正面临着类似的问题。 我的日志结束:

Mon Nov 19 10:25:37 [initandlisten] exception in initAndListen: 12596 old lock file, terminating
Mon Nov 19 10:25:37 dbexit: 
Mon Nov 19 10:25:37 [initandlisten] shutdown: going to close listening sockets...
Mon Nov 19 10:25:37 [initandlisten] shutdown: going to flush diaglog...
Mon Nov 19 10:25:37 [initandlisten] shutdown: going to close sockets...
Mon Nov 19 10:25:37 [initandlisten] shutdown: waiting for fs preallocator...
Mon Nov 19 10:25:37 [initandlisten] shutdown: lock for final commit...
Mon Nov 19 10:25:37 [initandlisten] shutdown: final commit...
Mon Nov 19 10:25:37 [initandlisten] shutdown: closing all files...
Mon Nov 19 10:25:37 [initandlisten] closeAllFiles() finished
Mon Nov 19 10:25:37 dbexit: really exiting now

所以我认为锁定文件未正确关闭(例如关闭时)。你应该使用

mongod --repair

但它对我不起作用,所以我刚删除了/var/lib/mongodb/mongod.lock然后启动了服务器。这不是安全的方法,如果您这样做,数据库中的数据可能会损坏。

答案 2 :(得分:7)

很抱歉重新发布这个帖子,但是我把它放在这里,因为我遇到了完全相同的问题,这很有效。

取自这里:

http://pastebin.com/6hP42r69

sudo -u mongodb mongod --repair -dbpath /var/lib/mongodb

我正在运行linux mint 15和当前的mongodb build。

答案 3 :(得分:5)

我遇到了同样的问题,我解决了运行问题:

$ service mongod restart

答案 4 :(得分:2)

我解决了这个手动删除.lock文件的问题

  

sudo rm -i /var/lib/mongodb/mongod.lock

然后重启

答案 5 :(得分:1)

看起来Mongo由于某种原因无法启动。除了亚当已经提出的建议。

  • 检查您是否对数据目录具有写入权限。
  • 检查您是否对/ var / log目录具有写入权限。
  • mongod是root用户还是其他用户?检查mongodb的init脚本 看看哪个用户正在运行mongod。

答案 6 :(得分:1)

其中一个可能的情况可能是mongod.lock(导致我的问题)。

打开您的日志文件
  

/var/log/mongodb/mongod.log

查看mongod.lock文件是否有任何异常。复制它的位置并将其删除

  

sudo rm /var/lib/mongodb/mongod.lock

然后运行

  

sudo service mongod restart

现在检查一切是否正常。

  

sudo service mongod status

预期输出为mongod start/running

答案 7 :(得分:1)

有时问题可能是因为没有足够的免费存储空间让journaling能够顺利继续。

tail -100 /var/log/mongodb/mongod.log发现了这个错误:

exception in initAndListen: 15926 Insufficient free space for journals, terminating 请在/ var / lib / mongodb / journal中至少提供3379MB或使用--smallfiles`

smallfiles=true放入我的MongoDB配置文件/etc/mongod.conf中解决了这个问题。

然后sudo rm /var/lib/mongodb/mongod.lock

然后使用service mongod start

重新启动MongoDB实例

希望得到这个帮助。