2014-06-08 32 views
1

我能夠開始我蒙戈服務器使用以下命令:啓動mongod的失敗,除非運行作爲根

[[email protected]]~/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,我收到以下錯誤:

[[email protected]]~/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 

這裏,在附加信息:

[[email protected]]~/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 

[[email protected]]~/node/nodetest2$ ls -l /etc/mongod.conf 
-rw-r--r-- 1 mongodb mongodb 1701 May 5 15:07 /etc/mongod.conf 

[[email protected]]~/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 

我無法找到一個類似的問題。這個問題的原因是什麼?

更新 得益於以下阿霞的回答,我跑了類似的命令,但改變了日誌文件的位置,其中一個不需要root訪問權限:

mongod --dbpath /home/lucas/node/nodetest2/data --fork --logpath /home/lucas/data/log/mongodb/mongod-nodetest2.log 

我也遇到一個問題其中mongod在後臺運行,與this question類似。在運行上述命令之前停止該進程爲我工作。

非常感謝Asya!

回答

6

如果你開始的mongod爲用戶xxx那麼所有的目錄和它需要使用必須由用戶xxx所擁有的文件 - 在你的情況我看到root這樣的mongod擁有無法處理這些文件的幾個文件。

修復權限並確保您再也不會以root身份運行mongod。另外,當你從mongod得到一個錯誤時,查看日誌文件會告訴你究竟是什麼導致了一個錯誤。 (在所有情況下,除非用戶mongod正在運行的文件不可寫)。