尝试运行命令
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
我还注意到在此过程中没有创建日志文件。
答案 0 :(得分:63)
我有同样的事情,结果证明是权限问题。如果子进程的所有者无法访问日志路径或者日志路径不存在,则它将失败。
我所做的是将日志目录放在我的主目录中:
mkdir ~/log
mongod --fork --logpath ~/log/mongodb.log
如果您确实想将它放在/ var / log目录中,只需更改权限即可。
答案 1 :(得分:8)
对于遇到此错误的任何其他人[即使您使用sudo运行它]请确保您在日志文件中声明:/var/log/mongodb.log。我只有/ var / log /中的目录路径,因为我错过了阅读mongo文档。
答案 2 :(得分:7)
我也有同样的错误,但是我使用sudo并运行sudo mongod --fork --logpath /var/log/mongodb.log
。正如@jryancanty所提到的那样,它只是一个权限错误。
答案 3 :(得分:1)
我删除了旧的
/var/run/mongodb/mongod.pid
并且一切正常。
答案 4 :(得分:0)
如果您有密钥文件,那么权限也可能过于开放。确保将其设置为0400
答案 5 :(得分:0)
如果您在日志文件中看到/tmp/mongodb-27017.sock存在问题,这可能会有效
sudo chown mongodb:mongodb /tmp/mongodb-27017.sock
答案 6 :(得分:0)
sudo mongod --fork --logpath /var/log/mongodb.log
在ubuntu中无需更改/ var中的权限,在logpath中使用完整的日志文件名
答案 7 :(得分:0)
由于用户权限,我遇到了同样的问题,当我使用没有权限创建文件的用户登录ubuntu时,也发生了此错误。
所以,你必须用sudo运行命令。 :)
答案 8 :(得分:0)
我错误地将日志路径设置为var / mongodb / db / mongo.log而不是/var/mongodb/db/mongo.log,因此Mongo试图访问/ home中不存在的文件夹。
答案 9 :(得分:0)
从EPEL repo(2.x)删除mongo并从mongo repo(4.x)安装mongo之后,我也遇到同样的问题。
journalctl -xe说:
ERROR: child process failed, exited with error number 1
就我而言,我有具有root用户权限的旧日志文件。 只需设置正确的权限或删除日志并检查日志目录权限即可。
答案 10 :(得分:0)
如果您已经有用于存储db数据的dbpath文件夹,并且在conf文件中为dbpath提供了新路径,也会生成此错误。在为dbpath创建新文件夹时,如果日志和PID存在,则将其删除。
答案 11 :(得分:0)
之后我有同样的问题
sudo rm /tmp/mongodb-27017.sock
sudo chown mongod:mongod /var/log/mongodb
一切正常。