Starting mongod fork, ERROR: child process failed, exited with error number 1

Starting mongod fork, ERROR: child process failed, exited with error number 1

正在尝试 运行 命令

mongod --fork --logpath /var/log/mongodb.log

在 amazon ec2 32 位实例(Amazon Linux AMI 版本 2014.09)上,我 运行 出现以下错误:

2015-02-18T18:14:09.007+0000 
2015-02-18T18:14:09.007+0000 warning: 32-bit servers don't have journaling    
enabled by default. Please use --journal if you want durability.
2015-02-18T18:14:09.007+0000 
about to fork child process, waiting until server is ready for connections.
forked process: 17116
ERROR: child process failed, exited with error number 1

我还注意到在此过程中没有创建日志文件。

我遇到了同样的事情,后来发现是权限问题。如果子进程的所有者无法访问日志路径或日志路径不存在,则会失败。

我所做的是将日志目录放在我的主目录中:

mkdir ~/log
mongod --fork --logpath ~/log/mongodb.log

如果你真的想把它放在你的 /var/log 目录中,只需更改权限即可。

我也有同样的错误,但是我使用了 sudo it 和 运行 sudo mongod --fork --logpath /var/log/mongodb.log。正如@jryancanty 提到的,这只是一个权限错误。

我删除了旧的

/var/run/mongodb/mongod.pid

一切正常。

对于其他 运行 遇到此错误的人 [即使您 运行 使用 sudo] 确保您声明日志文件的文件名,如:/var/log/mongodb。日志。我只有 /var/log/ 中的目录路径,因为我错过了阅读 mongo 文档。

如果你有keyfile,也有可能是权限太开放了。确保将其设置为 0400

如果您在日志文件中看到 /tmp/mongodb-27017.sock 的问题

,这可能会起作用

sudo chown mongodb:mongodb /tmp/mongodb-27017.sock

sudo mongod --fork --logpath /var/log/mongodb.log

在 ubuntu 中无需更改 /var 中的权限,在日志路径中使用完整的日志文件名

由于用户权限,我遇到了同样的问题,当我以 ubuntu 没有创建文件权限的用户身份登录时,也会发生此错误。

因此,您必须 运行 使用 sudo 命令。 :)

我错误地将日志路径设置为 var/mongodb/db/mongo.log 而不是 /var/mongodb/db/mongo.log,因此 Mongo 试图访问 /home 中不存在的文件夹。

从 EPEL 存储库 (2.x) 中删除 mongo 并从 mongo 存储库 (4.x) 安装 mongo 后,我遇到了同样的问题。

journalctl -xe 说:

ERROR: child process failed, exited with error number 1

在我的例子中,我有具有 root 权限的旧日志文件。 只需设置正确的权限或删除日志并检查日志目录权限。

如果您已经拥有存储数据库数据的 dbpath 文件夹,并且在 conf 文件中为 dbpath 提供了新路径,也会生成此错误。当您为 dbpath、logs 和 PID 创建新文件夹时,如果旧文件夹存在,则删除它们。

之后我遇到了同样的问题
sudo rm /tmp/mongodb-27017.sock
sudo chown mongod:mongod /var/log/mongodb

一切正常。