Mongodb服务无法启动

时间:2013-08-30 04:28:21

标签: mongodb service centos

我不知道为什么,昨天服务工作正常,突然间我无法启动MongoDB。

[root@purr ~]# service mongod start
Starting mongod: Thu Aug 29 23:26:07.550 
Thu Aug 29 23:26:07.550 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Aug 29 23:26:07.550 
about to fork child process, waiting until server is ready for connections.
forked process: 5078
all output going to: /var/log/mongo/mongod.log
ERROR: child process failed, exited with error number 100
                                                           [FAILED]

我查看了/var/log/mongo/mongod.log以及以下内容:

***** SERVER RESTARTED *****


Thu Aug 29 23:29:05.874 [initandlisten] MongoDB starting : pid=5118 port=27017 dbpath=/var/lib/mongo 32-bit host=purr.ipetfindr.com
Thu Aug 29 23:29:05.874 [initandlisten]
Thu Aug 29 23:29:05.874 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.
Thu Aug 29 23:29:05.874 [initandlisten] **   32 bit builds are limited to less than 2GB of data (or less with --journal).
Thu Aug 29 23:29:05.874 [initandlisten] **   Note that journaling defaults to off for 32 bit and is currently off.
Thu Aug 29 23:29:05.874 [initandlisten] **   See http://dochub.mongodb.org/core/32bit
Thu Aug 29 23:29:05.874 [initandlisten]
Thu Aug 29 23:29:05.874 [initandlisten] ** WARNING: You are running in OpenVZ. This is known to be broken!!!
Thu Aug 29 23:29:05.875 [initandlisten]
Thu Aug 29 23:29:05.875 [initandlisten] db version v2.4.6
Thu Aug 29 23:29:05.875 [initandlisten] git version: b9925db5eac369d77a3a5f5d98a145eaaacd9673
Thu Aug 29 23:29:05.875 [initandlisten] build info: Linux bs-linux32.10gen.cc 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Aug 29 23:29:05.875 [initandlisten] allocator: system
Thu Aug 29 23:29:05.875 [initandlisten] options: { config: "/etc/mongod.conf", dbpath: "/var/lib/mongo", fork: "true", logappend: "true", logpath: "/var/log/mongo/mongod.log", pidf$
**************
Unclean shutdown detected.
Please visit http://dochub.mongodb.org/core/repair for recovery instructions.
*************
Thu Aug 29 23:29:05.875 [initandlisten] exception in initAndListen: 12596 old lock file, terminating
Thu Aug 29 23:29:05.875 dbexit:
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: going to close listening sockets...
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: going to flush diaglog...
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: going to close sockets...
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: waiting for fs preallocator...
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: closing all files...
Thu Aug 29 23:29:05.875 [initandlisten] closeAllFiles() finished
Thu Aug 29 23:29:05.875 dbexit: really exiting now

我应该如何解决此问题,重新启动服务器,服务似乎无法正常工作。

修复后的错误

不知道该怎么做是说错误无法打开文件/ var / lib / mongo / local.ns 终止

***** SERVER RESTARTED *****


Fri Aug 30 04:49:43.041 [initandlisten] MongoDB starting : pid=3300 port=27017 dbpath=/var/lib/mongo 32-bit host=purr.ipetfindr.com
Fri Aug 30 04:49:43.041 [initandlisten]
Fri Aug 30 04:49:43.041 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.
Fri Aug 30 04:49:43.041 [initandlisten] **   32 bit builds are limited to less than 2GB of data (or less with --journal).
Fri Aug 30 04:49:43.041 [initandlisten] **   Note that journaling defaults to off for 32 bit and is currently off.
Fri Aug 30 04:49:43.041 [initandlisten] **   See http://dochub.mongodb.org/core/32bit
Fri Aug 30 04:49:43.041 [initandlisten]
Fri Aug 30 04:49:43.041 [initandlisten] ** WARNING: You are running in OpenVZ. This is known to be broken!!!
Fri Aug 30 04:49:43.041 [initandlisten]
Fri Aug 30 04:49:43.041 [initandlisten] db version v2.4.6
Fri Aug 30 04:49:43.041 [initandlisten] git version: b9925db5eac369d77a3a5f5d98a145eaaacd9673
Fri Aug 30 04:49:43.041 [initandlisten] build info: Linux bs-linux32.10gen.cc 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Fri Aug 30 04:49:43.041 [initandlisten] allocator: system
Fri Aug 30 04:49:43.041 [initandlisten] options: { config: "/etc/mongod.conf", dbpath: "/var/lib/mongo", fork: "true", logappend: "true", logpath: "/var/log/mongo/mongod.log", pidf$
Fri Aug 30 04:49:43.058 [initandlisten] couldn't open /var/lib/mongo/local.ns errno:13 Permission denied
Fri Aug 30 04:49:43.058 [initandlisten] error couldn't open file /var/lib/mongo/local.ns terminating
Fri Aug 30 04:49:43.059 dbexit:
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: going to close listening sockets...
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: going to flush diaglog...
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: going to close sockets...
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: waiting for fs preallocator...
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: closing all files...
Fri Aug 30 04:49:43.059 [initandlisten] closeAllFiles() finished
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: removing fs lock...
Fri Aug 30 04:49:43.059 dbexit: really exiting now

12 个答案:

答案 0 :(得分:48)

运行修复后,我能够以root身份启动mongod proccessor,这意味着service mongod start无效。要修复此问题,我需要确保数据库文件夹中的所有文件都已拥有并分组到mongod。我通过以下方式做到了这一点:

  1. 检查数据库文件夹中的文件权限
    1. 注意你需要在我的dbpath文件夹中 /var/lib/mongo我去了cd /var/lib
    2. 我跑了ls -l mongo
  2. 这向我展示了数据库归root所有,这是错误的。我运行以下内容来解决此问题:chown -R mongod:mongod mongo。这会将文件夹中每个文件的所有者和组更改为mongod。 (如果使用mongodb软件包,chown -R mongodb:mongodb mongodb
  3. 我希望将来可以帮助别人。

答案 1 :(得分:14)

我首先执行C:\mongodb\bin\mongod.exe --repair解决了这个问题。然后,当我再次通过C:\mongodb\bin\mongod.exe运行MongoDB时,它已成功启动。

答案 2 :(得分:8)

我通过删除d:\ test \ mongodb \ data \ mongod.lock文件解决了这个问题。当您重新连接mongo db时,此文件将在同一文件夹中自动生成。它对我有用。

答案 3 :(得分:3)

对我来说,没有启动的原因结果是/var/lib/mongo/mongo.lock上的孤立锁文件。当我删除该文件时,mongo会启动OK。在此之前,我的系统发生了一些混乱的崩溃。 [Fedora 14]

答案 4 :(得分:3)

它可能是由于mongod.lock文件引起的,但如果错误在删除后仍然存在,请检查mongo.conf中的路径;它可能是一个简单的问题,例如配置的日志路径或dbPath不存在(检查mongo / conf / mongod.conf中的路径并检查它们是否存在,有时mongo不能在自己的创建目录结构中,因此您可能必须创建这些目录在启动mongod之前手动完成)。

答案 5 :(得分:2)

这一切都在您的错误消息中 - 似乎检测到了不干净的关机。有关详细信息,请参阅http://docs.mongodb.org/manual/tutorial/recover-data-following-unexpected-shutdown/

在我的经验中,通常使用mongod.exe选项ro修复数据库运行--repair会很有帮助。

答案 6 :(得分:1)

我验证了权限,但一切都很好(mongod:mongod)。 由于我正在开发一个大型项目,并且在我们的开发环境中的类似问题中,我们的脚本占用了所有可用的磁盘空间,我可以在错误消息中看到mongod需要至少3.7Gb的可用磁盘空间才能运行。

我检查了自己的磁盘空间,但发现还剩下不到2Gb。移动/删除一些数据后,我可以再次成功启动mongod。

希望这会有所帮助; - )

答案 7 :(得分:1)

我尝试删除锁定文件,但发生这种情况的真正原因是因为我使用〜/ data / db作为数据目录。 Mongo需要数据库的绝对路径。一旦我将其更改为/ home // data / db,我就开始了。

答案 8 :(得分:0)

从C:\ mongodb \ data \路径中删除.lock文件,然后重新启动mongodb服务。

答案 9 :(得分:0)

我还不能upvote / comment,但是+1用于手动删除锁定文件哈哈。

我的C9工作区崩溃了,并触发意外关机。 API建议: https://docs.mongodb.com/manual/tutorial/recover-data-following-unexpected-shutdown/

..但删除数据/ mongo.lock对我有用:)。

另外,如果您遇到连接拒绝(发生在我身上),在删除锁定文件之前运行修复命令可以解决您的问题(它确实是我的)。

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

答案 10 :(得分:0)

当我从Windows Terminal运行mongod.exe时,收到消息Unrecognized option: mpmp:的末尾有一个空白的mongod.cfg。删除那对我来说解决了问题。

答案 11 :(得分:0)

就我而言,每当我的本地系统关闭而没有停止MongoDB服务器时,它也显示出一些锁定问题。

但是它只能通过使用sudo命令来工作:-

$ sudo mongod --port 27017