这是错误:
(mysite)zjm1126@zjm1126-G41MT-S2:~$ /usr/local/mongodb/bin/mongod
/usr/local/mongodb/bin/mongod --help for help and startup options
Wed Apr 27 10:02:41 [initandlisten] MongoDB starting : pid=2652 port=27017 dbpath=/data/db/ 32-bit
** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
** see http://blog.mongodb.org/post/137788967/32-bit-limitations
** with --dur, the limit is lower
Wed Apr 27 10:02:41 [initandlisten] db version v1.8.1, pdfile version 4.5
Wed Apr 27 10:02:41 [initandlisten] git version: a429cd4f535b2499cc4130b06ff7c26f41c00f04
Wed Apr 27 10:02:41 [initandlisten] build sys info: Linux bs-linux32.10gen.cc 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_37
Wed Apr 27 10:02:41 [initandlisten] exception in initAndListen std::exception: Unable to create / open lock file for lockfilepath: /data/db/mongod.lock errno:13 Permission denied, terminating
Wed Apr 27 10:02:41 dbexit:
Wed Apr 27 10:02:41 [initandlisten] shutdown: going to close listening sockets...
Wed Apr 27 10:02:41 [initandlisten] shutdown: going to flush diaglog...
Wed Apr 27 10:02:41 [initandlisten] shutdown: going to close sockets...
Wed Apr 27 10:02:41 [initandlisten] shutdown: waiting for fs preallocator...
Wed Apr 27 10:02:41 [initandlisten] shutdown: closing all files...
Wed Apr 27 10:02:41 closeAllFiles() finished
Wed Apr 27 10:02:41 [initandlisten] shutdown: removing fs lock...
Wed Apr 27 10:02:41 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor
Wed Apr 27 10:02:41 dbexit: really exiting now
答案 0 :(得分:86)
启动MongoDB的用户帐户需要写入权限到/data/db/
目录...您可以像这样更改...
此命令会将/data/db/
的所有者更改为正在使用的用户帐户。
$ sudo chown `id -u` /data/db
$ mongod
如果仍然遇到启动MongoDB的问题,则需要删除/data/db/mongod.lock
,然后对数据库运行修复...
mongod --repair
有关修复命令here的更多信息。
答案 1 :(得分:14)
sudo
mongod
的调用或更改/data/db/mongod.lock
的权限,以便您可以写入。
答案 2 :(得分:11)
我通过在mongodb上做了一个chown来解决这个问题。
sudo chown -R mongodb:mongodb /data
这是因为,当你做
时ls -lrth /data
drwxr-xr-x 2 mongodb mongodb 6 Jan 5 02:31 journal
-rwxr-xr-x 1 mongodb mongodb 0 Jan 5 02:31 mongod.lock
drwxr-xr-x 2 ubuntu root 24 May 8 20:02 configdb
希望这有帮助。
答案 3 :(得分:5)
确保没有运行mongod实例。
这对我有用。我查看是否有一个实例在后台运行,首先查看终端,如下所示: ps aux | grep mongo
我看到有: 48358 bla bla mongod
所以我杀了它: 杀48358
然后我能够运行得很好。
答案 4 :(得分:4)
在这里,我是如何解决它的
sudo mongod --repair --config=/etc/mongodb.conf
对其进行了修复,
在此之后,我使用ls -l /var/lib/mongodb/mongod.lock
sudo chown mongodb:mongodb /var/lib/mongodb/*
sudo service mongodb restart
答案 5 :(得分:0)
如果您要拯救副本集的成员不,请使用上述方法。而是使用ReSync-documentation of MongoDB中描述的过程。
答案 6 :(得分:0)
在使用brew进行标准安装后的Mac OSX Yosemite上:
sudo chown -R `id -u` /data/db
如果没有启动(检查是否没有挂起和阻塞连接):
lsof -i:27017
输出如下内容:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mongod 16948 andi 8u IPv4 0x883a71bc9412939d 0t0 TCP *:27017 (LISTEN)
取值PID
并运行:
kill -9 <PID>
现在您应该可以启动mongo服务器:mongod
然后在单独的控制台窗口中连接到mongo