我可以使用以下命令启动我的mongo服务器:
[lucas@ecoinstance]~/node/nodetest2$ sudo mongod --dbpath /home/lucas/node/nodetest2/data
--fork --logpath /var/log/mongodb/mongod-nodetest2.log
about to fork child process, waiting until server is ready for connections.
forked process: 10293
child process started successfully, parent exiting
但是当我尝试删除sudo
时,我收到以下错误:
[lucas@ecoinstance]~/node/nodetest2$ mongod --dbpath /home/lucas/node/nodetest2/
data --fork --logpath /var/log/mongodb/mongod-nodetest2.log
about to fork child process, waiting until server is ready for connections.
forked process: 10284
ERROR: child process failed, exited with error number 1
以下是其他信息:
[lucas@ecoinstance]~/node/nodetest2$ ls -l data/*
-rw------- 1 mongodb mongodb 67108864 Jun 7 20:57 data/local.0
-rw------- 1 mongodb mongodb 16777216 Jun 7 20:57 data/local.ns
-rwxr-xr-x 1 mongodb mongodb 6 Jun 7 20:57 data/mongod.lock
-rw------- 1 mongodb mongodb 67108864 Jun 7 02:08 data/nodetest1.0
-rw------- 1 mongodb mongodb 16777216 Jun 7 02:08 data/nodetest1.ns
-rw------- 1 mongodb mongodb 67108864 Jun 7 23:01 data/nodetest2.0
-rw------- 1 mongodb mongodb 16777216 Jun 7 23:01 data/nodetest2.ns
data/journal:
total 3145744
-rw------- 1 mongodb mongodb 1073741824 Jun 7 23:01 j._0
-rw------- 1 root root 88 Jun 7 23:01 lsn
-rw------- 1 mongodb mongodb 1073741824 Jun 6 03:10 prealloc.1
-rw------- 1 mongodb mongodb 1073741824 Jun 6 03:12 prealloc.2
[lucas@ecoinstance]~/node/nodetest2$ ls -l /etc/mongod.conf
-rw-r--r-- 1 mongodb mongodb 1701 May 5 15:07 /etc/mongod.conf
[lucas@ecoinstance]~/node/nodetest2$ ls -l /var/log/mongodb/
total 120
-rw-r--r-- 1 mongodb mongodb 96801 Jun 7 05:48 mongod.log
-rw-r--r-- 1 root root 15625 Jun 8 00:18 mongod-nodetest2.log
-rw-r--r-- 1 mongodb mongodb 2805 Jun 7 20:38 mongod-nodetest2.log.2014-06-07T20-57-47
我找不到类似的问题。这个问题的原因是什么?
更新 感谢下面Asya的回答,我运行了一个类似的命令,但是将日志文件的位置更改为不需要root访问权限的文件:
mongod --dbpath /home/lucas/node/nodetest2/data --fork --logpath /home/lucas/data/log/mongodb/mongod-nodetest2.log
我还遇到了mongod
在后台运行的问题,类似于this question。在运行上述命令之前停止该过程对我有用。
谢谢Asya!
答案 0 :(得分:6)
如果您以用户xxx
启动mongod,那么它需要使用的所有目录和文件必须由用户xxx
拥有 - 在您的情况下,我会看到root
所拥有的几个文件mongod无法操纵这些文件。
修复权限并确保永远不再以root用户身份运行mongod
。此外,当您从mongod
收到错误时,查看日志文件将告诉您确切的错误原因。 (除非用户mongod
无法写入文件,否则所有情况除外)。