当前位置: 首页>>技术教程>>正文


ubuntu – 为什么我不能启动mongodb

,

问题描述

这是错误:

(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

最佳答案

正在启动MongoDB的用户帐户需要具有对/data/db/目录的写特权…您可以像这样更改它…

此命令会将/data/db/的所有者更改为正在使用的用户帐户。

$ sudo chown `id -u` /data/db
$ mongod 

如果仍然遇到启动MongoDB的问题,则需要删除/data/db/mongod.lock,然后对数据库进行修复…

mongod --repair

有关修复命令here的更多信息。

次佳答案

sudo是对mongod的调用,也可以更改/data/db/mongod.lock的权限,以便您可以对其进行写操作。

第三种答案

我通过在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

希望这可以帮助。

第四种答案

确保您没有运行mongod实例。

这对我有用。我首先通过查看终端来检查是否首先在后台运行实例:ps aux | grep mongo

我看到那里是:48358 bla bla mongod

所以我杀死了它:杀死48358

然后我就可以正常运行了。

第五种答案

在这里,我如何解决

  1. 删除锁定文件后,我使用sudo mongod --repair --config=/etc/mongodb.conf对其进行了修复,之后,我使用ls -l /var/lib/mongodb/mongod.lock检查了mongod.lock权限

  2. 它显示root是锁定文件的所有者,所以我使用sudo chown mongodb:mongodb /var/lib/mongodb/*将其更改回mongodb

  3. 然后使用sudo service mongodb restart重新启动mongodb服务

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8405.html,未经允许,请勿转载。