无法创build/打开locking文件:/data/mongod.lock errno:13权限被拒绝
如何让mongo在ec2上使用安装的驱动器? 我真的不明白。 我在ec2上附加了一个卷,以root身份格式化了驱动器,并以根用户身份启动,但是作为root用户无法访问? 我在Ubuntu 12.04上运行。 没有其他的mongo正在运行
我看到mongo在/ data ie / data / db中创build了一个“db”目录
cd / ls -al drwxr-xr-x 4 root root 4096 Mar 5 16:28 data cd /data ls -al total 28 drwxr-xr-x 4 root root 4096 Mar 5 16:28 . drwxr-xr-x 24 root root 4096 Mar 5 16:28 .. drwxr-xr-x 2 root root 4096 Mar 5 16:28 db drwx------ 2 root root 16384 Mar 5 16:20 lost+found sudo mkfs.ext3 /dev/xvdh sudo mkdir /data sudo su - -c 'echo "/dev/xvdh %s auto noatime 0 0" | sudo tee -a /etc/fstab' sudo mount /data sudo service mongodb start mongodb start/running, process 17169 sudo ps -ef | grep mongod ubuntu 15763 15634 0 16:32 pts/2 00:00:00 tail -f mongodb.log ubuntu 18049 15766 0 16:43 pts/3 00:00:00 grep --color=auto mongod Tue Mar 5 16:33:15 [initandlisten] MongoDB starting : pid=15890 port=27017 dbpath=/data 64-bit host=aws-mongo-server-east-staging-20130305161917 Tue Mar 5 16:33:15 [initandlisten] db version v2.2.3, pdfile version 4.5 Tue Mar 5 16:33:15 [initandlisten] git version: f570771a5d8a3846eb7586eaffcf4c2f4a96bf08 Tue Mar 5 16:33:15 [initandlisten] build info: Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49 Tue Mar 5 16:33:15 [initandlisten] options: { bind_ip: "10.157.60.27", config: "/etc/mongodb.conf", dbpath: "/data", logappend: "true", logpath: "/var/log/mongodb/mongodb.log", replSet: "heythat" } Tue Mar 5 16:33:15 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating Tue Mar 5 16:33:15 dbexit: Tue Mar 5 16:33:15 [initandlisten] shutdown: going to close listening sockets... Tue Mar 5 16:33:15 [initandlisten] shutdown: going to flush diaglog... Tue Mar 5 16:33:15 [initandlisten] shutdown: going to close sockets... Tue Mar 5 16:33:15 [initandlisten] shutdown: waiting for fs preallocator... Tue Mar 5 16:33:15 [initandlisten] shutdown: lock for final commit... Tue Mar 5 16:33:15 [initandlisten] shutdown: final commit... Tue Mar 5 16:33:15 [initandlisten] shutdown: closing all files... Tue Mar 5 16:33:15 [initandlisten] closeAllFiles() finished Tue Mar 5 16:33:15 [initandlisten] shutdown: removing fs lock... Tue Mar 5 16:33:15 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor Tue Mar 5 16:33:15 dbexit: really exiting now
下面是如果我重新启动,当我删除一个锁文件….
Tue Mar 5 16:59:15 [initandlisten] MongoDB starting : pid=21091 port=27017 dbpath=/data 64-bit host=aws-mongo-server-east-staging-20130305161917 Tue Mar 5 16:59:15 [initandlisten] db version v2.2.3, pdfile version 4.5 Tue Mar 5 16:59:15 [initandlisten] git version: f570771a5d8a3846eb7586eaffcf4c2f4a96bf08 Tue Mar 5 16:59:15 [initandlisten] build info: Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49 Tue Mar 5 16:59:15 [initandlisten] options: { bind_ip: "10.157.60.27", config: "/etc/mongodb.conf", dbpath: "/data", logappend: "true", logpath: "/var/log/mongodb/mongodb.log", replSet: "heythat" } Tue Mar 5 16:59:15 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating Tue Mar 5 16:59:15 dbexit: Tue Mar 5 16:59:15 [initandlisten] shutdown: going to close listening sockets... Tue Mar 5 16:59:15 [initandlisten] shutdown: going to flush diaglog... Tue Mar 5 16:59:15 [initandlisten] shutdown: going to close sockets... Tue Mar 5 16:59:15 [initandlisten] shutdown: waiting for fs preallocator... Tue Mar 5 16:59:15 [initandlisten] shutdown: lock for final commit... Tue Mar 5 16:59:15 [initandlisten] shutdown: final commit... Tue Mar 5 16:59:15 [initandlisten] shutdown: closing all files... Tue Mar 5 16:59:15 [initandlisten] closeAllFiles() finished Tue Mar 5 16:59:15 [initandlisten] shutdown: removing fs lock... Tue Mar 5 16:59:15 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor Tue Mar 5 16:59:15 dbexit: really exiting now
我在Ubuntu ec2实例上遇到同样的问题。 我正在关注第7页上的这篇亚马逊文章:
http://d36cz9buwru1tt.cloudfront.net/AWS_NoSQL_MongoDB.pdf
/etc/mongodb.conf中的Mongodbpath被设置为/var/lib/mongodb
(主要安装位置和工作)。 当我改为/data/db
(EBS卷)时,我得到了'errno:13权限被拒绝'。
- 首先我跑了
sudo service mongodb stop
。 - 然后我使用
ls -la
来查看分配给/var/lib/mongodb
(现有path)的组和所有者mongodb,并且使用chown
和chgrp
来更改/data/db
(新path)以匹配。 (例如:sudo chown -R mongodb:mongodb /data/db
) - 然后我将
etc/mongodb.conf
的path更新到/data/db
并删除了/var/lib/mongodb
目录中的旧mongo文件。 - 然后我跑了
sudo service mongodb start
,等了大约一分钟。 如果您尝试立即连接到27017,您将无法使用。 - 经过一分钟的检查
/data/db
(EBS卷)和mongo应该放置日志,mongod.lock,local.ns,local.0等。如果没有尝试sudo service mongodb restart
并检查一分钟后。
我刚刚花了一个多小时。 更改组和删除旧文件可能是没有必要的,但这是对我的工作。
这是一个关于将ebs卷挂载到ec2实例的好video:
我用这个方法来解决这个问题:
sudo chown -R `id -u` /data/db
在我的情况下(AWS EC2实例,Ubuntu)帮助:
$ sudo mkdir -p /data/db/ $ sudo chown `USERNAME` /data/db
之后,一切正常。
你只需要访问你的/data/db
文件夹。
键入sudo chown -R <USERNAME> /data/db
,用您的用户名replace<USERNAME>
。
你可以通过inputwhoami
find你的用户名。
在本教程之后,我在安装了Ubuntu 14.04的EC2上安装了EBS的mongodb:
http://docs.mongodb.org/ecosystem/platforms/amazon-ec2/
但是,而不是我所build议的chown:
sudo chown -R mongodb:mongodb /data /log /journal
解决这个问题
对于mac用户:
运行ls -ld / data / db /
输出应该像drwrx-xr-x 20 singh wheel 680 21 Jul 05:49 / data / db /
singh是所有者, wheel是它属于的组。
运行sudo chown -R singh:wheel / data / db
运行mongod
截至今天,我试图通过创build/打开locking文件:/data/db/mongod.lock errno:13权限被拒绝是一个mongod实例已经运行?,终止 ,并尝试所有答案上面张贴到解决这个问题,因此没有任何加法
sudo chown -R mongodb:mongodb / data / db
除非我通过添加我的当前用户权限的位置path
sudo chown $ USER / data / db
希望这有助于某人。 另外我刚刚在我的pi上安装了Mongo DB。 干杯!
我有一个类似的问题,并遵循以上有关使用sudo chown等更改所有者的说明。我仍然有一个MongoDB在后台运行后的实例。 运行
ps auxw | grep mongo
向我展示了使用mongo在后台运行时没有正确closures的其他任务。 然后我跑了所有的运行,然后可以启动我的服务器。
删除mongodb.lock文件在我的情况下不是问题。 我这样做,并得到有关端口正在使用的错误:[initandlisten] listen():bind()失败errno:98地址已经在使用套接字:0.0.0.0:27017。 我在这里find了另一个解决scheme: 无法启动mongodb本地服务器与指示杀死进程:
-
从netstat中查找哪个进程正在运行mongodb端口(27017)
sudo netstat -tulpn | grep :27017
输出将是:tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 1412 / mongod
-
杀死适当的过程。
sudo kill 1412
(用步骤1中find的进程IDreplace1412)
而且我能够再次成功启动mongodb。 我相信我的行踪还在不正确的closures。
在Mycase中
在mongodb 2.6.11版本中默认的databse目录是/var/lib/mongodb/
-
$ sudo chown -R
id -u
/ var / lib / mongodb / -
$ sudo chown -R
id -u
/var/lib/mongodb/mongod.lock -
$ sudo /etc/init.d/mongod stop
-
$ sudo /etc/init.d/mongod start
在Mongo 2.2.4实例的Fedora 18上,我通过以root身份调用setenforce 0
来禁用SELinux,从而避免了类似的错误。
顺便说一句,这是一个企业环境,而不是亚马逊EC2的实例,但症状是相似的。
在我的情况下,通过删除日志文件解决了问题。
sudo rm /log/mongod.log
尽pipe错误消息专指锁文件:
exception in initAndListen: 10309 Unable to create/open lock file: /data/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
我杀了mongod之后,我也遇到了同样的问题:无法启动mongod。
$> sudo kill `pidof mongod`
2015-08-03T05:58:41.339+0000 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/mongodbtest/replset/data/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
在我直接删除锁之后,我可以重新启动mongod进程。
$> rm -rf /data/mongodbtest/replset/data/mongod.lock
对于那些在Windows上使用任务pipe理器遇到这个错误结束正在运行的“mongod.exe”的实例。 一旦完成,永久删除mongo.lock文件并运行mongod.exe。 那应该是完美的。
这是我解决这个问题的方法:
$ sudo mkdir -p / data / db
$ export PATH = / usr / local / Cellar / mongodb / 3.0.7 / bin:$ PATH
$ sudo chown -R id -u
/ data / db
然后开始mongo …
$的mongod
我的mongo(3.2.9)安装在Ubuntu上,我的日志文件有以下几行:
2016-09-28T11:32:07.821+0100 E STORAGE [initandlisten] WiredTiger (13) [1475058727:821829][6785:0x7fa9684ecc80], file:WiredTiger.wt, connection: /var/lib/mongodb/WiredTiger.turtle: handle-open: open: Permission denied 2016-09-28T11:32:07.822+0100 I - [initandlisten] Assertion: 28595:13: Permission denied 2016-09-28T11:32:07.822+0100 I STORAGE [initandlisten] exception in initAndListen: 28595 13: Permission denied, terminating
2016-09-28T11:32:07.822 + 0100 I CONTROL [initandlisten] dbexit:rc:100
所以问题是在/ var / lib / mongodb文件夹的权限。
sudo chown -R mongodb:mongodb /var/lib/mongodb/ sudo chmod -R 755 /var/lib/mongodb
- 重新启动服务器
修正了它,虽然我意识到可能不是太安全(这是我自己的开发盒,我在我的情况),稍微跟随数据库和身份validation工作的变化。
做ls -la
知道/ var / log / mongodb的用户和组。 然后做sudo chown -R user:group /data/db
现在运行sudo service mongodb start
。 用sudo service mongodb status
检查sudo service mongodb status
在窗口上确保控制台启动为aministrator
我有类似的问题,实际的原因是有mongod会话已经从我以前的尝试运行。
我跑了
killall mongod
其他一切都按预期运行。
killall
命令会发送一个TERM信号给所有具有真实UID的进程。 所以这个杀死所有mongod的实例,这样你就可以开始自己的了。
毕竟, 重新启动电脑是我的伎俩。
我有同样的问题。
我通过下面的命令将selinux状态更改为许可来解决它:
setenforce 0