试图运行命令
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
我也注意到在这个过程中没有创build日志文件。
我有同样的事情,原来是一个权限问题。 如果子进程的所有者无法访问日志路径,或者日志路径不存在,则会失败。
我所做的是把日志目录放在我的主目录中:
mkdir ~/log mongod --fork --logpath ~/log/mongodb.log
如果你真的想把它放在你的/ var / log目录下,只需要改变权限。
我也有同样的错误,但是我使用sudo它并运行sudo mongod --fork --logpath /var/log/mongodb.log
。 正如@jryancanty提到的,这只是一个权限错误。
对于遇到这个错误的任何人(即使你用sudo运行它),确保你声明了日志文件的文件名,如:/var/log/mongodb.log。 我只是在/ var / log /目录路径,因为我想念读mongo文档。
我删除了旧的
/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运行命令。 🙂