Mongodb服务赢得';开始
我不知道为什么,昨天的服务还不错,突然我无法启动MongoDBMongodb服务赢得';开始,mongodb,service,centos,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 A
[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
这一切都在您的错误消息中-似乎检测到了不干净的关机。有关详细信息,请参阅
在我的expirence中,通常使用
--repair
选项ro repair DB运行mongod.exe会有所帮助。运行修复后,我可以启动mongod进程,但作为root用户,这意味着服务mongod start
将无法工作。要修复此问题,我需要确保数据库文件夹中的所有文件都归mongod所有并分组。我是这样做的:
***** 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
检查数据库文件夹中的文件权限
注意你需要在你的dbpath文件夹中,我的是
/var/lib/mongo
我去了cd/var/lib
我运行了ls-l mongo
这表明数据库是root所有的,这是错误的。我运行了以下命令来修复此问题:chown-R mongod:mongod mongo
。这将文件夹中每个文件的所有者和组更改为mongod。(如果使用mongodb包,chown-R mongodb:mongodb mongodb
)
我希望这对以后的其他人有所帮助。我通过执行C:\mongodb\bin\mongod.exe--repair
首先解决了这个问题。然后,当我通过C:\MongoDB\bin\mongod.exe再次运行MongoDB时,它成功地启动了。对我来说,没有启动的原因是/var/lib/mongo/mongo.lock处有一个孤立的锁文件。当我删除该文件时,mongo会正常启动。在此之前,我的系统发生了一些混乱的崩溃。[Fedora 14]我验证了权限,但一切正常(mongod:mongod)。
由于我正在处理一个大型项目,并且在我们的开发环境中有一个类似的问题,我们的脚本占用了所有可用的磁盘空间,因此我可以在错误消息中看到mongod至少需要3.7Gb的可用磁盘空间才能运行
我检查了自己的磁盘空间,结果发现剩下的空间不足2Gb。在移动/删除一些数据后,我可以再次成功启动mongod
希望这有帮助;-) 我通过删除d:\test\mongodb\data\mongod.lock文件解决了这个问题。当您重新连接mongo db时,此文件将在同一文件夹中自动生成。它对我很有用。从C:\mongodb\data\path中删除.lock文件,然后重新启动mongodb服务。我尝试删除锁文件,但发生这种情况的真正原因是我使用~/data/db作为数据目录。Mongo需要数据库的绝对路径。一旦我将其更改为/home//data/db,我就开始工作了。这可能是由于mongod.lock文件造成的,但如果删除后错误仍然存在,请检查mongo.conf中的路径;这可能是一个简单的问题,例如配置的日志路径或dbPath不存在(检查mongo/conf/mongod.conf中的路径,并检查它们是否存在,有时mongo无法在其自己的目录结构中创建目录,因此您可能必须在启动mongod之前手动创建这些目录) 我还不能更新投票/评论,但是+1用于手动删除锁定文件哈哈
我的C9工作区崩溃并触发意外关机。空气污染指数建议:
。。但是删除数据/mongo.lock对我来说很有效:)
此外,为了防止连接被拒绝(我也遇到了这种情况),在删除锁文件之前运行修复命令可以解决您的问题(它确实解决了我的问题)
sudo-u mongodb mongod--repair--dbpath/var/lib/mongodb/当我从Windows终端运行mongod.exe时,我收到一条消息无法识别的选项:mp
。在mongod.cfg
的末尾有一个空的mp:
。删除它为我解决了问题。在我的例子中,每当本地系统关闭而不停止MongoDB服务器时,它也会显示一些锁问题
但它只是通过使用sudo命令才起作用:-
$sudo mongod--端口27017请访问:)您真的想运行64位服务器。。希望这是一个开发系统;-)。请注意启动警告:默认情况下禁用32位系统的数据限制和日志记录。这里真正的错误是您注意到的“无法打开”上方的一行:errno:13权限被拒绝
。正如你在回答中提到的,由于以root用户身份而不是以前使用的mongod
用户/组运行修复,出现了所有权/权限问题。原因是系统因电源故障或mongo deamon进程关闭不当而终止。我这样做了,但仍然无法启动我已修复并能够启动它,但是无法在后台启动mongod
进程(包括修复)不需要以root身份运行。最佳实践始终是选择运行服务所需的最低特权帐户。这是我的救命恩人,谢谢!原来也是我的权限。另外,您可能需要执行以下操作:sudo rm/tmp/mongodb-*。socki get chown:invalid user:'mongod:mongod'我还有一个孤立的mongo.lock。不确定造成这种情况的确切原因,但我刚刚更新了OSX;这需要重新启动。我也是。这是因为我在没有关闭MongoDB的情况下重启了MacBook。我试图复制,但我也犯了同样的错误。如果我之前关闭了Mongo,当我启动Mongo时,一切都很好。等等。。。我们不是在谈论LINUX问题吗?