无法在Ubuntu 11.04上重新启动mongodb

14

我已经安装了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 logpath=/var/log/mongodb/mongodb.log

logappend=true

bind_ip = 127.0.0.1
auth = true


service mongodb start 的输出是什么? - Emil Vikström
你能粘贴一下你的 /etc/mongodb.conf 文件的内容吗? - ghstcode
服务 mongodb start mongodb 已启动,进程号为 9012 - Amila
2
适用于系统管理员和桌面支持专业人员的问答社区,应发布在http://serverfault.com上。 - Mchl
你解决了吗?我也遇到了同样的问题,这里的答案并没有解决我的问题。同时,像其他帖子中建议的那样删除mongo.lock文件也没有帮助。 - SeeDoubleYou
8个回答

11

鉴于启动命令的输出,它已经正确启动了。当您运行状态命令时,似乎已经停止了。您需要查看日志文件:

/var/log/mongodb/mongodb.log
那将告诉您为什么mongod停止。有几个可能的原因,但如果没有看到输出,很难明确回答。我的一般建议:
  1. 不要使用bind_ip-总的来说这是个坏主意更新(2016):删除此内容,因为导致我在2012年编写此内容的bind_ip问题已经得到解决,并且现在官方软件包默认启用它。 作为故障排除步骤尝试不使用该设置,但通常使用它也不是坏主意。
  2. 检查端口27017上是否有其他进程正在运行
  3. 即使要使用默认值,请在mongodb.conf文件中明确指定端口
最后,为了防止出现文件权限问题(通常是由于以root身份运行),请参阅此答案以了解如何修复文件权限问题:

mongodb crashes after unexpected shutdown


1
请注意,日志文件位于:/var/log/mongodb/mongod.log - Carol Skelly
这可能是您的系统情况,但如果您查看问题中粘贴的配置,您会注意到日志路径已明确设置为我所写的 :) - Adam Comerford

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然后启动了服务器。这不是安全的方法,如果您这样做,数据库中的数据有可能会损坏。


7

很抱歉要重新提起这个话题,但我把它放在这里是因为我遇到了完全相同的问题,并且这个方法解决了我的问题。

引用自于此处:

http://pastebin.com/6hP42r69

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

我正在使用Linux Mint 15和最新的MongoDB版本。


6
我曾经遇到同样的问题,只需运行以下命令即可解决:

$ service mongod restart


2

我手动解决了这个问题,方法是删除.lock文件:

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

然后重新启动。


1
有时候问题可能是由于没有足够的免费存储空间来使"日志记录"顺畅进行而引起的。
通过执行"tail -100 /var/log/mongodb/mongod.log"命令,发现以下错误:
"exception in initAndListen: 15926 Insufficient free space for journals, terminating Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles"
将"smallfiles=true"添加到MongoDB配置文件"/etc/mongod.conf"中以解决此问题。
然后执行"sudo rm /var/lib/mongodb/mongod.lock"命令,
最后使用"service mongod start"命令重新启动MongoDB实例。
希望这能帮到您。

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。

1

看起来Mongo由于某些原因无法启动。除了Adam已经提供的建议之外。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接