错误:子进程失败,退出错误号为51的MongoDB

7
在重启MongoDB时出现了这个错误,我使用的是Mongo 3.2.4,并且正在新机器上进行设置。
Starting mongod... about to fork child process, waiting until server is ready for connections.
forked process: 19438
ERROR: child process failed, exited with error number 51
 mongod(_ZN5mongo19MmapV1ExtentManager4initEPNS_16OperationContextE+0x4A8) [0x1040278]
 mongod(_ZN5mongo26MMAPV1DatabaseCatalogEntryC1EPNS_16OperationContextENS_10StringDataES3_bb+0x187) [0x1036dc7]
 mongod(_ZN5mongo12MMAPV1Engine23getDatabaseCatalogEntryEPNS_16OperationContextENS_10StringDataE+0x14E) [0x103a1de]
 mongod(_ZN5mongo14DatabaseHolder6openDbEPNS_16OperationContextENS_10StringDataEPb+0x133) [0xac92a3]

-----  END BACKTRACE  -----

1
@MultiplyByZer0 我错了,已点赞。 - Brandon Zamudio
3个回答

3

对于我来说,这个错误是由于我的数据目录中某些文件的所有权不正确导致的。 我使用以下命令解决了这个问题:

sudo chown -R mongodb: /path/to/db/directory

在我的情况下,mongodb是数据库用户。


这对我很有帮助。我在很多地方都有root:root。我还需要更新sock文件$ sudo chown mongod:mongod /tmp/mongodb.sock。 - Bilbo

1

这可以通过将以下行插入到/etc/security/limits.conf中来解决:

mongodb      soft    nofile          65535
mongodb      hard    nofile          90000
mongodb      soft    nproc           65535
mongodb      hard    nproc           90000

我们需要添加用于运行Mongo服务的用户帐户。通常情况下,它是mongodb用户。

对我没有用。我添加了这些行,然后执行sudo mongod --fork --port 27017 --replSet admin --logpath /data/log/mongo.log,但仍然出现错误代码51。 - user1709076
我认为用户名是 mongod,也许在早期版本中使用了 mongodb - Wernfried Domscheit

0
在我的情况下,问题是我没有创建配置文件中指定的适当文件夹。

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