如何让mongo在ec2上使用已安装的驱动器?我真的不明白.我在ec2上附加了一个卷,以root身份格式化驱动器并以root身份启动,但作为root我无法访问?我在ubuntu 12.04上运行.没有其他mongo正在运行
我看到mongo在/ data ie/data/db中创建了一个'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
Run Code Online (Sandbox Code Playgroud)
下面是我删除锁定文件时重新启动....
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
Run Code Online (Sandbox Code Playgroud)
Hai*_*mei 478
我使用这种方法来解决问题:
sudo chown -R mongodb:mongodb /data/db
Run Code Online (Sandbox Code Playgroud)
小智 113
我在Ubuntu ec2实例上遇到了同样的问题.我在第7页上关注这篇亚马逊文章:
http://d36cz9buwru1tt.cloudfront.net/AWS_NoSQL_MongoDB.pdf
Mongodb路径/etc/mongodb.conf设置为/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目录.sudo service mongodb start,等了大约一分钟.如果您尝试立即连接到27017,则无法连接./data/db(EBS卷)和mongo应该放置一个日志,mongod.lock,local.ns,local.0等.如果没有尝试sudo service mongodb restart并在一分钟后检查.我只花了一个多小时.更改组和删除旧文件可能没有必要,但这对我有用.
这是关于将ebs卷安装到ec2实例的精彩视频:
http://www.youtube.com/watch?v=gBII3o3BofU
小智 81
就我而言(AWS EC2实例,Ubuntu)帮助:
$ sudo mkdir -p /data/db/
$ sudo chown `USERNAME` /data/db
Run Code Online (Sandbox Code Playgroud)
之后一切正常.
jul*_*oup 50
您只需要授予对/data/db文件夹的访问权限.
输入sudo chown -R <USERNAME> /data/db,用<USERNAME>您的用户名替换.
您可以通过输入找到您的用户名whoami.
Eve*_*ers 12
我在本教程之后使用Ubuntu 14.04在EC2上安装了带有EBS的mongodb:
http://docs.mongodb.org/ecosystem/platforms/amazon-ec2/
但是,我没有建议的chown:
sudo chown -R mongodb:mongodb /data /log /journal
Run Code Online (Sandbox Code Playgroud)
解决问题
Ven*_*SGS 10
我有类似的问题,实际的原因是我的上一次尝试已经运行了mongod会话.
我跑了
killall mongod
Run Code Online (Sandbox Code Playgroud)
其他一切都按预期运行.
killall命令会向具有真实UID的所有进程发送TERM信号.所以这会杀死所有正在运行的mongod实例,这样你就可以开始自己的了.
我有一个类似的问题,并遵循上面关于使用sudo chown等更改所有者的所有说明.我仍然有一个mongodb实例在更改后在后台运行.运行
ps auxw | grep mongo
Run Code Online (Sandbox Code Playgroud)
向我展示了使用mongo在后台运行未正确关闭的其他任务.然后我对所有正在运行的程序运行kill,然后可以启动我的服务器.
小智 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
小智 6
截至今天,我试图通过创建/打开锁定文件:/data/db/mongod.lock错误:13权限被拒绝是一个mongod实例已经运行?,终止,并尝试上面发布的所有答案解决这个问题,因此添加没有任何结果
sudo chown -R mongodb:mongodb/data/db
除非我将当前用户权限添加到位置路径
sudo chown $ USER/data/db
希望这有助于某人.我刚刚在我的pi上安装了Mongo DB.干杯!
在我的情况下,删除 mongodb.lock 文件不是问题。我这样做了,但收到有关正在使用的端口的错误:[initandlisten] listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:27017。我在这里找到了另一个解决方案:无法使用终止进程的指令启动 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 (将 1412 替换为您在步骤 1 中找到的进程 ID)
我能够再次成功启动mongodb。我相信我的仍然因不当关闭而运行。