MongoDB安装失败,无法运行mongod。

21

我已经下载了最新版本的mongodb,并将文件移动并重命名为mongodb到目录usr/local/mongodb。当我尝试运行mongod时,我得到以下错误:

`./bin/mongod --help` for help and startup options
Sun Apr 15 18:08:25 [initandlisten] MongoDB starting : pid=8801 port=27017 dbpath=/data/db/ 64-bit host=Hanss-MacBook-Air.local
Sun Apr 15 18:08:25 [initandlisten] db version v2.0.4, pdfile version 4.5
Sun Apr 15 18:08:25 [initandlisten] git version: 329f3c47fe8136c03392c8f0e548506cb21f8ebf
Sun Apr 15 18:08:25 [initandlisten] build info: Darwin erh2.10gen.cc 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_40
Sun Apr 15 18:08:25 [initandlisten] options: {}
Sun Apr 15 18:08:25 [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
Sun Apr 15 18:08:25 dbexit: 
Sun Apr 15 18:08:25 [initandlisten] shutdown: going to close listening sockets...
Sun Apr 15 18:08:25 [initandlisten] shutdown: going to flush diaglog...
Sun Apr 15 18:08:25 [initandlisten] shutdown: going to close sockets...
Sun Apr 15 18:08:25 [initandlisten] shutdown: waiting for fs preallocator...
Sun Apr 15 18:08:25 [initandlisten] shutdown: lock for final commit...
Sun Apr 15 18:08:25 [initandlisten] shutdown: final commit...
Sun Apr 15 18:08:25 [initandlisten] shutdown: closing all files...
Sun Apr 15 18:08:25 [initandlisten] closeAllFiles() finished
Sun Apr 15 18:08:25 [initandlisten] shutdown: removing fs lock...
Sun Apr 15 18:08:25 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor
Sun Apr 15 18:08:25 dbexit: really exiting now

那么,在数据目录中是否有 mongod.lock 文件? - Sergio Tulentsev
2
我没有找到解决方法,但是在使用sudo chown -R /data/db之后,我成功让mongod工作了。 - Hans Adiputra Arijanto
5个回答

78

sudo chown -R <你的用户名> /data/db

mongod使用哪个用户运行?你是用普通登录运行它吗?


1
我通过使用sudo chown -R /data/db成功运行了Mongo。不过我还有另一个问题需要帮助。我尝试使用mongo>>rails server运行我的rails项目,但收到了以下错误: - Hans Adiputra Arijanto
退出 /Library/Ruby/Gems/1.8/gems/activesupport-3.1.1/lib/active_support/dependencies.rb:234:in `load': /Users/hansarijanto/Desktop/Impact/ribbot/config/initializers/session_store.rb:4: 语法错误,意外的“:”,期望 $end (SyntaxError) ...sion_store :cookie_store, key: '_ribbot_session', :domain =>... - Hans Adiputra Arijanto
1
为此创建另一个stackoverflow问题。我不是Rails专家。 - Joe Frambach
这个问题已经解决了。问题出在对 /data/db 目录的权限设置上。 - V_J

4
与“Joe Frambach”的相同,但更友好,可以立即复制和粘贴。
sudo chown -R $(whoami) /data/db

1

我遇到了同样的错误,在以管理员权限运行的Windows上解决了这个问题。


不建议使用管理员权限运行:该问题涉及到这个特定的声明。 - c24b

1

systemctl启动是因为mongod的init脚本像大多数其他脚本一样引用了这个文件:

. /etc/rc.d/init.d/functions

带有chkconfig注释的块用于定义配置和pid文件:

# config: /etc/my-mongod.conf
# pidfile: /var/run/mongo/mongo.pid

但是pifile的路径应该与您在配置文件中的dbpath匹配。因此,在/etc/my-mongod.conf中:

dbpath = /home/mongodb/2.0.5/data

与/etc/init.d/mongod中的此注释匹配

# pidfile: /home/mongodb/2.0.5/data/mongod.lock

除非这个解释非常有用,否则我们不确定应该做什么。 - c24b

0

以下命令在我的环境中可行:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接