在尝试运行命令时
mongod --fork --logpath /var/log/mongodb.log
在亚马逊ec2 32位实例(亚马逊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目录中,只需更改权限即可。
从EPEL repo(2.x)中删除mongo并从mongo repo(4.x)安装mongo后,我遇到同样的问题。
journalctl -xe说:
ERROR: child process failed, exited with error number 1
在我的情况下,我有旧的日志文件与root权限。只需设置正确的权限或删除日志并检查日志目录权限。
对于遇到此错误的任何其他人[即使您使用sudo运行它]请确保您在日志文件中声明:/var/log/mongodb.log。我只有/ var / log /中的目录路径,因为我错过了阅读mongo文档。
我也有同样的错误,但我使用sudo它并运行sudo mongod --fork --logpath /var/log/mongodb.log
。正如@jryancanty所提到的,它只是一个权限错误。
我删除了旧的
/var/run/mongodb/mongod.pid
一切顺利。
如果您有密钥文件,则权限也可能过于开放。确保将其设置为0400
如果您在日志文件中看到/tmp/mongodb-27017.sock存在问题,这可能会有效
sudo chown mongodb:mongodb /tmp/mongodb-27017.sock
sudo mongod --fork --logpath /var/log/mongodb.log
在ubuntu中无需更改/ var中的权限,在logpath中使用完整的日志文件名
由于用户权限,我遇到了同样的问题,当我使用没有创建文件权限的用户登录ubuntu时,也发生了此错误。
所以,你必须用sudo运行命令。 :)
我错误地将日志路径设置为var / mongodb / db / mongo.log而不是/var/mongodb/db/mongo.log,因此Mongo尝试访问/ home中不存在的文件夹。