2012-03-15 209 views
4

在Arch Linux 64bit上使用MongoDb。全新安装。 Trying,作为根:mongodb.lock权限被拒绝

/etc/rc.d/mongodb start 

日志说:

***** SERVER RESTARTED ***** 


Thu Mar 15 12:00:18 BackgroundJob starting: DataFileSync 
Thu Mar 15 12:00:18 versionCmpTest passed 
Thu Mar 15 12:00:18 versionArrayTest passed 
Thu Mar 15 12:00:18 shardObjTest passed 
Thu Mar 15 12:00:18 shardKeyTest passed 
Thu Mar 15 12:00:18 isInRangeTest passed 
Thu Mar 15 12:00:18 [initandlisten] MongoDB starting : pid=580 port=27017 dbpath=/data/db 64-bit host=(none) 
Thu Mar 15 12:00:18 [initandlisten] db version v2.0.3, pdfile version 4.5 
Thu Mar 15 12:00:18 [initandlisten] git version: nogitversion 
Thu Mar 15 12:00:18 [initandlisten] build info: Linux brynhild.archlinux.org 3.2.6-1-ARCH #1 SMP PREEMPT Tue Feb 14 09:11:26 CET 2012 x86_64 BOOST_LIB_VERSION=1_49 
Thu Mar 15 12:00:18 [initandlisten] options: { config: "/etc/mongodb.conf", dbpath: "/data/db", fork: true, journal: "true", logappend: "true", logpath: "/var/log/mongodb/mongodb.log", port: 27017, rest: "true", vvvv: "true" } 
Thu Mar 15 12:00:18 [initandlisten] User Assertion: 10309:Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running? 
Thu Mar 15 12:00:18 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating 
Thu Mar 15 12:00:18 dbexit: 
Thu Mar 15 12:00:18 [initandlisten] shutdown: going to close listening sockets... 
Thu Mar 15 12:00:18 [initandlisten] shutdown: going to flush diaglog... 
Thu Mar 15 12:00:18 [initandlisten] shutdown: going to close sockets... 
Thu Mar 15 12:00:18 [initandlisten] shutdown: waiting for fs preallocator... 
Thu Mar 15 12:00:18 [initandlisten] shutdown: lock for final commit... 
Thu Mar 15 12:00:18 [initandlisten] shutdown: final commit... 
Thu Mar 15 12:00:18 [initandlisten] shutdown: closing all files... 
Thu Mar 15 12:00:18 [initandlisten] closeAllFiles() finished 
Thu Mar 15 12:00:18 [initandlisten] shutdown: removing fs lock... 
Thu Mar 15 12:00:18 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor 
Thu Mar 15 12:00:18 dbexit: really exiting now 

目录和文件persmissions:

[[email protected](none) ~]# ls -lisa /data/db/ 
total 12 
262711 4 drwxr-xr-x 3 root root 4096 Mar 15 11:43 . 
262710 4 drwxr-xr-x 3 root root 4096 Mar 15 11:25 .. 
262714 4 drwxr-xr-x 2 root root 4096 Mar 15 11:43 journal 
261775 0 -rwxr-xr-x 1 root root 0 Mar 15 11:43 mongod.lock 

的MongoDB的conf:

port = 27017 
dbpath = /data/db 
logpath = /var/log/mongodb/mongodb.log 
logappend = true 
vvvv = true 
journal = true 
rest = true 

我可以启动MongoDB实例mongod ,但不在上面的背景中。任何帮助将是伟大的,谢谢。

回答

7

我验证/etc/rc.d/mongodb,我认为它会使用MongoDB的用户来运行服务:

[ -z "$PID" ] && /bin/su mongodb -c "/usr/bin/mongod --config /etc/mongodb.conf --fork" > /dev/null 

我想用root通过游的mongod可能造成这个错误,所以店主mongod.lock的内容更改为root。

+2

Doh!我以前做过这个。你是对的..'chown mongodb:users/data'修复了它。谢谢! – MFB 2012-03-15 03:01:39

0

我可以mongod的后台当您启动mongod这种方式,你实际上是所有相同的参数启动它启动MongoDB实例,而不是如上

?锁定文件仅用于该特定文件夹。

检查事项:

  1. 是否已有的mongod运行(ps -ef | grep mongod)的实例?
  2. 那个端口上还有别的东西在运行吗?
  3. 你配置正确吗?为什么你有--journal命令,这不应该是--nojournalin v2.0+或根本没有?
+0

感谢您的额外信息re - journal。我会检查一下。 – MFB 2012-03-15 03:20:55