重启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 -----
答案 0 :(得分:1)
通过将以下行插入/etc/security/limits.conf
:
mongodb soft nofile 65535
mongodb hard nofile 90000
mongodb soft nproc 65535
mongodb hard nproc 90000
我们需要添加用于运行Mongo服务的用户帐户。通常,它是mongodb
用户。
答案 1 :(得分:1)
对我来说,由于数据目录中某些文件的所有权不正确而发生此错误。我使用以下命令修复了这个问题:
sudo chown -R mongodb: /path/to/db/directory
在我的情况下,mongodb是数据库用户。
答案 2 :(得分:0)
对于我来说,问题是我没有创建配置文件中指定的适当文件夹。