如何让mongo在ec2上使用已安装的驱动器?我真的不明白。我在ec2上附加了一个卷,将该驱动器格式化为root并以root身份启动,但作为root我无法访问?我在ubuntu 12.04上运行。没有其他mongo正在运行
我看到mongo在/ data中创建了一个'db'目录,即/ data / 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
答案 0 :(得分:475)
我使用这种方法来解决问题:
sudo chown -R mongodb:mongodb /data/db
答案 1 :(得分:108)
我在Ubuntu ec2实例上遇到了同样的问题。我正在关注第7页的亚马逊文章:
http://d36cz9buwru1tt.cloudfront.net/AWS_NoSQL_MongoDB.pdf
/etc/mongodb.conf
中的Mongodb路径设置为/var/lib/mongodb
(主要安装位置和工作状态)。当我改为/data/db
(EBS卷)时,我得到'错误:13权限被拒绝'。
sudo service mongodb stop
。ls -la
来查看哪个组&已将所有者mongodb分配到/var/lib/mongodb
(现有路径),并将/data/db
(新路径)更改为chown
和chgrp
以匹配。 (例如:sudo chown -R mongodb:mongodb /data/db
)etc/mongodb.conf
中的路径更新为/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实例的精彩视频:
答案 2 :(得分:80)
在我的案例中(AWS EC2实例,Ubuntu)帮助:
$ sudo mkdir -p /data/db/
$ sudo chown `USERNAME` /data/db
之后一切正常。
答案 3 :(得分:50)
您只需要授予对/data/db
文件夹的访问权限。
输入sudo chown -R <USERNAME> /data/db
,用您的用户名替换<USERNAME>
。
您可以输入whoami
找到您的用户名。
答案 4 :(得分:12)
我在本教程之后使用Ubuntu 14.04在EC2上安装了mongodb和EBS:
http://docs.mongodb.org/ecosystem/platforms/amazon-ec2/
但不是我建议的chown:
sudo chown -R mongodb:mongodb /data /log /journal
解决问题
答案 5 :(得分:10)
我有类似的问题,实际的原因是我的上一次尝试已经运行了mongod会话。
我跑了
killall mongod
其他一切都按预期运行。
killall
命令会向具有真实UID的所有进程发送TERM信号。所以这会杀死所有正在运行的mongod实例,这样你就可以开始自己的了。
答案 6 :(得分:6)
截至今天,我试图通过 创建/打开锁定文件:/data/db/mongod.lock errno:13权限被拒绝mongod实例是否已经运行?,终止 ,并尝试了上面发布的所有答案来解决这个问题,因此添加
没有任何效果sudo chown -R mongodb:mongodb / data / db
除非我通过
将当前用户权限添加到位置路径sudo chown $ USER / data / db
希望这有助于某人。我刚刚在我的pi上安装了Mongo DB。干杯!
答案 7 :(得分:6)
我有一个类似的问题,并遵循上面关于使用sudo chown等更改所有者的所有说明。我仍然有一个mongodb实例在更改后在后台运行。运行
ps auxw | grep mongo
向我展示了使用mongo在后台运行但未正确关闭的其他任务。然后我对所有正在运行的程序运行kill,然后可以启动我的服务器。
答案 8 :(得分:6)
对于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
答案 9 :(得分:4)
在我的情况下删除mongodb.lock文件不是问题。我这样做了并且有关于正在使用的端口的错误:[initandlisten] listen():bind()失败错误:98地址已经用于socket:0.0.0.0:27017。我在这里找到了另一个解决方案:unable to start mongodb local server,其中包含杀死进程的说明:
从netstat中了解哪个进程正在运行mongodb port(27017)
sudo netstat -tulpn | grep :27017
输出将为:tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 1412 / mongod
杀死相应的流程。
sudo kill 1412
(将1412替换为您在步骤1中找到的进程ID)
我能够再次成功启动mongodb。我相信我的关闭仍然是不正常的。
答案 10 :(得分:4)
对于那些在Windows上使用任务管理器遇到此错误的人,请结束&#34; mongod.exe&#34;的实例。正在运行。完成后,永久删除mongo.lock文件并运行mongod.exe。它应该在那之后完美地运作。
答案 11 :(得分:3)
我的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
修正了它,虽然我确实认识到它可能不太安全(它是我自己的开发盒我在我的情况下),但是在数据库和身份验证工作之后有点改变。
答案 12 :(得分:2)
在Mycase中
在mongodb版本2.6.11中,默认数据库目录为/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
答案 13 :(得分:1)
这就是我为解决问题所做的工作:
$ 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的
答案 14 :(得分:1)
在Windows10上安装mongod命令后遇到了同样的问题。 我停止了mongodb服务,然后重新启动了它。像魅力一样工作
用于停止mongodb服务的命令(在Windows中):net stop mongodb
启动mongodb服务器的命令:mongod --dbpath PATH_TO_DATA_FOLDER
答案 15 :(得分:1)
我杀了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
答案 16 :(得分:1)
在我的情况下,通过删除 日志 文件解决了该问题。
sudo rm /log/mongod.log
虽然错误消息特指 lock 文件:
exception in initAndListen: 10309 Unable to create/open lock file:
/data/mongod.lock errno:13 Permission denied
Is a mongod instance already running?, terminating
答案 17 :(得分:1)
在带有Mongo 2.2.4实例的Fedora 18上,通过以root身份调用setenforce 0
来禁用SELinux,我能够解决类似的错误。
答案 18 :(得分:0)
在通过{{ __SELF__.settings.text_top_form|raw}}
<form action="#" class="appointment-form ftco-animate" id="simpleContactForm" data-request="{{ __SELF__ }}::onFormSubmit">
<div id="simple_contact_flash_message"></div>
<div class="d-md-flex">
<div class="form-group">
<input type="text" id="name" placeholder=" Name" name="name" class="form-control" required >
</div>
<div class="form-group ml-md-4">
<input type="email" id="email" placeholder="Email" name="email" class="form-control" required >
</div>
</div>
<div class="d-md-flex">
<div class="form-group ml-md-4">
<input class="form-control" placeholder="Phone" type="text" id="phone" name="phone" /></div>
<div class="form-group ml-md-4">
<input type="text" id="subject" name="subject" class="form-control" placeholder="Subject" required>
</div>
</div>
<div class="d-md-flex">
<div class="form-group">
<textarea class="form-control" cols="30" id="message" name="message" placeholder="Message" rows="2">
</textarea>
</div>
<div class="form-group ml-md-4"><input class="btn btn-primary py-3 px-4" type="submit" value="Submit" />
</div>
</div>
</form>
检查端口之后,如果在其上运行smth,则出现类似的错误,已修复:删除所有记录(在我的情况下为目录<section class="ftco-section ftco-consult ftco-no-pt ftco-no-pb" data-stellar-background-ratio="0.5" style="background-image: url(images/bg_5.jpg);">
<div class="overlay"> </div>
<div class="container">
<div class="row justify-content-end">
<div class="col-md-6 py-5 px-md-5">
<div class="py-md-5">
<div class="heading-section heading-section-white ftco-animate mb-5">
<h2 class="mb-4">Any Enquiry?</h2>
</div>
{% component 'simpleContact' %}
</div>
</div>
</div>
</div>
和文件journals
){ {1}},然后尝试再次运行mongo.lock...
答案 19 :(得分:0)
在Centos服务器中
这对我有用
chown -R mongod:mongod /var/lib/mongo
答案 20 :(得分:0)
如果您确实想要与原始问题中的命令等效的一行,则可以使用别名:
mongo --eval "db.getSiblingDB('admin').shutdownServer()"
答案 21 :(得分:0)
在CentOS 6.x上对我来说:
sudo chown -R mongodb:mongodb <db-path>
sudo service mongod restart
并且我在db-path
中设置了自定义/etc/mongod.conf
。
答案 22 :(得分:0)
你可以通过这些方式尝试。 第一
sudo chown -R mongod:mongod / data / db
但有时候这没用。 第2位。 如果上述方法无用,您可以尝试这样做:
mkdir / data / db #as数据库存储路径
nohup mongod --dbpath / data / db&amp;
或输入:
mongod --dbpath / data / db
获取输出流
答案 23 :(得分:0)
我遇到了同样的问题。
我通过使用以下命令将selinux状态更改为permissive来解决它:
setenforce 0
答案 24 :(得分:0)
在Windows上,确保控制台以管理员身份启动
答案 25 :(得分:0)
执行ls -la
以了解/ var / log / mongodb的用户和组。
然后做sudo chown -R user:group /data/db
现在运行sudo service mongodb start
。
使用sudo service mongodb status
答案 26 :(得分:-2)
每当你尝试启动mongod时 只需输入
sudo mongod
或者如果永久想要解决这个问题,只需尝试将rwx提交给/ data / db文件夹
chmod +rwx data/
答案 27 :(得分:-2)
修正: sudo mongod
我遇到了同样的问题,运行 mongod 并修复了sudo权限。
来自Windows环境,我只使用mongod
来启动守护进程,看起来我们需要超级用户权限才能访问/ data / db。
您还可以为非root用户授予对该路径的读写权限。检查以上答案以获得指南!