无法创建/打开锁定文件:/data/mongo.lock errno: 13拒绝权限

如何让 mongo 在 ec2上使用挂载的驱动器?我真的不明白。我在 ec2上附加了一个卷,将驱动器格式化为 root,并以 root 启动,但是作为 root 我不能访问?我正在运行 ubuntu 12.04。没有其他蒙古人跑了

我看到 mongo 在/data (即/data/db)中创建了一个“ db”dir

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
214070 次浏览

我在一个 Ubuntu ec2实例中遇到了同样的问题,我在第7页上看到了一篇亚马逊的文章:

Http://d36cz9buwru1tt.cloudfront.net/aws_nosql_mongodb.pdf

/etc/mongodb.conf中的 Mongodb 路径被设置为 /var/lib/mongodb(主要安装位置和工作)。当我切换到 /data/db(EBS 卷)时,我得到的是‘ errno: 13 Permission Denny’。

  1. 首先我运行 sudo service mongodb stop
  2. 然后,我使用 ls -la查看分配给 /var/lib/mongodb(现有路径)的组和所有者 mongodb,并将 /data/db(新路径)与 chownchgrp更改为匹配。(例子: sudo chown -R mongodb:mongodb /data/db)
  3. 然后,我将 etc/mongodb.conf中的路径更新为 /data/db,并删除了 /var/lib/mongodb目录中的旧 mongo 文件。
  4. 然后我运行 sudo service mongodb start并等待了大约一分钟。如果你尝试立即连接到27017,你将无法。
  5. 检查 /data/db(EBS 卷)一分钟后,mongo 应该已经放置了日志、 mongo.lock、 local.ns、 local. 0等。如果不尝试 sudo service mongodb restart和检查一分钟后。

我刚花了一个多小时研究这个。更改组和删除旧文件可能没有必要,但这对我很有效。

这是一个关于将 ebs 卷安装到 ec2实例的很棒的视频:

Http://www.youtube.com/watch?v=gbii3o3bofu

在我的案例中(AWS EC2实例,Ubuntu)起到了帮助:

$ sudo mkdir -p /data/db/
$ sudo chown `USERNAME` /data/db

之后一切都很顺利。

在具有 Mongo2.2.4实例的 Fedora18上,我能够通过调用 setenforce 0作为 root 来禁用 SELinux 来避免类似的错误。

顺便说一句,这是一个企业环境,不是 Amazon EC2实例,但症状是相似的。

我用这种方法来解决这个问题:

sudo chown -R mongodb:mongodb /data/db

在我的例子中,删除 mongodb.lock 文件并不是问题所在。我这样做了,得到了一个关于正在使用的端口的错误: [ initandlisten ] listen () : bind () false errno: 98已经在套接字中使用的地址: 0.0.0.0:27017。我在这里找到了另一种解决方案: 无法启动本地服务器,其中包含终止进程的指令:

  1. 从 netstat 查找正在运行 mongodb 端口(27017)的进程

    sudo netstat -tulpn | grep :27017

    输出将是: tcp 0.0.0.0.0:270170.0.0.0: * LISTEN 1412/monGod

  2. 终止适当的过程。

    sudo kill 1412(用步骤1中的进程 ID 替换1412)

我成功地重新启动了 Mongodb,我相信我的公司仍然处于不正常的关闭状态。

在我的例子中,通过删除 记录文件解决了这个问题。

sudo rm /log/mongod.log

虽然错误消息特别提到了 锁定文件:

exception in initAndListen: 10309 Unable to create/open lock file:
/data/mongod.lock errno:13 Permission denied
Is a mongod instance already running?, terminating

我用 Ubuntu 14.04在 EC2上安装了带 EBS 的 mongodb,下面是这个教程:

Http://docs.mongodb.org/ecosystem/platforms/amazon-ec2/

但是我没有按照他们的建议去做,而是做了:

sudo chown -R mongodb:mongodb /data /log /journal

解决问题

我有一个类似的问题,并遵循所有上述关于改变业主使用 sudo chown 等指示。在更改之后,我仍然有一个在后台运行的 mongodb 实例。跑步

ps auxw | grep mongo

给我展示了其他任务,在后台运行的 mongo 没有正确关闭。然后对所有运行的运行程序运行 kill,然后可以启动服务器。

我杀了蒙神之后,我也遇到了同样的问题: 不能创造蒙神。

$> 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

在我直接删除锁之后,我可以重新启动蒙神进程。

$>  rm -rf /data/mongodbtest/replset/data/mongod.lock

对于那些在 Windows 上使用 Task Manager 遇到此错误的用户,结束正在运行的“ mongod.exe”实例。一旦这样做了,就永久删除 mongo.lock 文件并运行 mongo.exe。之后应该会很顺利。

你只需要给你的 /data/db文件夹访问权限。

键入 sudo chown -R <USERNAME> /data/db,用您的用户名替换 <USERNAME>

您可以通过键入 whoami找到您的用户名。

这就是我解决问题的方法:

$sudo mkdir-p/data/db

$export PATH =/usr/local/Cellar/monGodb/3.0.7/bin: $PATH

$sudo chown-R id -u/data/db

然后开始蒙戈。

$蒙神

在 Mycase
在 mongodb 版本2.6.11中,默认的数据库目录是 /var/lib/mongodb/

  1. $sudo chown-R id -u/var/lib/mongob/

  2. $sudo chown-R id -u/var/lib/mongodb/mongod.lock

  3. $ sudo /etc/init.d/mongod stop

  4. $ sudo /etc/init.d/mongod start

对于 mac 用户:
运行 Ls-ld/data/db/
输出应该类似于 < strong > drwrx-xr-x 20 singh eel 68021 Jul 05:49/data/db/
其中 Singh是所有者,轮子是它所属的组。
运行 Sudo chown-R singh:
运行 上帝

执行 ls -la以了解/var/log/mongodb 的用户和组。 那就做 sudo chown -R user:group /data/db 现在运行 sudo service mongodb start。 用 sudo service mongodb status检查状态

在 windows 上,确保控制台作为管理员启动

我的 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: 1002016-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
  • 重启服务器

固定它,虽然我确实意识到这可能不太安全(这是我自己的开发箱,我在我的情况下) ,位跟随改变数据库和身份验证工作。

到今天为止,我试图通过我的方式通过 < em > 创建/open lock file:/data/db/mongo.lock errno: 13拒绝许可 mongod 实例是否已经在运行? ,终止 ,并尝试所有的答案张贴上面来解决这个问题,因此没有工作通过添加

Sudo chown-R mongodb: mongodb/data/db

除非我将当前用户权限添加到位置路径

Sudo chown $USER/data/db

希望这对某些人有帮助。而且我刚刚在我的 π 上安装了 Mongo DB。干杯!

我有类似的问题,实际的原因是,有蒙古会议运行已经从我以前的尝试。

我跑了

killall mongod

其他的一切都照计划进行。

killall命令将向所有具有实际 UID 的进程发送 TERM 信号。因此,这杀死所有的运行实例的蒙古,以便您可以开始自己的。

我也有同样的问题。

我通过下面的命令将 selinux 状态改为  许可来解决这个问题:

setenforce 0

你可以试试这些方法。 第一。

Sudo chown-R monGod: monGod/data/db

但在某些时候,这是没有用的。 第二名。 如果上述方法不适用,你可以尝试这样做:

Mkdir/data/db # 作为数据库存储路径

Nohup monGod —— dbpath/data/db &

或输入:

MonGod —— dbpath/data/db

来获取输出流

解决方案: sudo mongod

我遇到了同样的问题,使用 sudo 特权运行 上帝解决了这个问题。 来自一个 windows 环境,我只使用 mongod来启动守护进程,看起来我们需要超级用户权限来访问/data/db。

您也可以给非 root 用户读写权限的路径。检查答案上面的指南!

每次你试图开始修行的时候 打字就行了

sudo mongod

或者如果想永久修复这个问题,只需尝试给予/data/db 文件夹 rwx 版权

 chmod +rwx data/

对我来说 CentOS6.x:

Sudo chown-R mongob: mongob < db-path > Sudo 服务蒙神重启

我在 /etc/mongod.conf中设置了一个定制的 db-path

如果你真的想要一行相当于你原始问题中的命令,你可以使用别名:

mongo --eval "db.getSiblingDB('admin').shutdownServer()"

Https://stackoverflow.com/a/11777141/7160782

在 Centos 服务器上

这对我有用

chown -R mongod:mongod /var/lib/mongo

当我在 Windows10上安装了 monGod 命令之后,我也遇到了同样的问题。 我停止了服务,重新开始,非常有效

停止 mongodb 服务(在窗口中)的命令: net stop mongodb

命令启动 mongodb 服务器: mongod --dbpath PATH_TO_DATA_FOLDER

得到了一个类似的错误,修正了删除所有记录(在我的案例目录 journals和文件 mongo.lock...) ,在检查端口与 sudo lsof -i:27017之后,如果 smth 运行在它的 kill <PID of the process>上,并尝试再次运行 ./mongod