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

日志附加=真

bind_ip = 127.0.0.1
auth = true

4

8 回答 8

11

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

/var/log/mongodb/mongodb.log

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

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

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

意外关闭后mongodb崩溃

于 2012-04-09T14:04:07.830 回答
9

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

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

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

于 2012-11-19T10:06:42.787 回答
7

很抱歉重新讨论这个线程,但我把它放在这里是因为我遇到了完全相同的问题并且它有效。

取自这里:

http://pastebin.com/6hP42r69

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

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

于 2013-08-13T15:16:02.683 回答
6

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

$ service mongod restart

于 2015-03-19T08:52:36.980 回答
2

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

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

然后重新启动

于 2014-08-01T20:13:59.867 回答
1

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

  • 检查您是否具有对数据目录的写入权限。
  • 检查您是否具有对 /var/log 目录的写入权限。
  • mongod 是以 root 身份运行还是以其他用户身份运行?检查 mongodb 的 init 脚本以查看 mongod 以什么用户身份运行。
于 2012-04-09T19:13:40.703 回答
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

然后使用重新启动 MongoDB 实例service mongod start

希望这有帮助。

于 2016-02-14T08:10:31.430 回答
1

一种可能的情况可能是 mongod.lock(这导致了我的问题)。

在以下位置打开您的日志文件

/var/log/mongodb/mongod.log

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

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

然后运行

sudo 服务 mongod 重启

检查现在是否一切正常。

sudo 服务 mongod 状态

预期输出将是mongod start/running

于 2016-01-26T12:36:58.450 回答