ubuntu 为什么我不能启动mongodb

jum4pzuy  于 2023-02-03  发布在  Go
关注(0)|答案(7)|浏览(221)

这是错误:

(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
2cmtqfgy

2cmtqfgy1#

启动MongoDB的用户帐户需要对/data/db/目录具有写权限......您可以这样修改它......

  • 此命令会将/data/db/的所有者更改为正在使用的用户帐户。*
$ sudo chown `id -u` /data/db
$ mongod

如果您在MongoDB启动时仍然遇到问题,您需要删除/data/db/mongod.lock,然后在数据库上运行修复...

mongod --repair

更多关于修复命令的信息。

vql8enpb

vql8enpb2#

sudo调用mongod,或者更改/data/db/mongod.lock的权限,使其可由您写入。

68de4m5k

68de4m5k3#

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

希望这个有用。

9rygscc1

9rygscc14#

确保您没有运行mongod示例。
这对我很有效,我首先查看终端,看看是否有示例在后台运行,如下所示:副|大蒙戈
我看到有:小行星48358
所以我杀了它杀死48358
然后我就能很好地运行它了。

zzlelutf

zzlelutf5#

这是我的解决方法
1.删除锁定文件后,我用sudo mongod --repair --config=/etc/mongodb.conf修复它,在此之后,我检查mongod.lock权限使用ls -l /var/lib/mongodb/mongod.lock
1.显示root是锁定文件的所有者,所以我使用sudo chown mongodb:mongodb /var/lib/mongodb/*将其改回mongodb
1.然后使用sudo service mongodb restart重新启动mongodb服务

jyztefdp

jyztefdp6#

在Mac OSX约塞米蒂上使用brew进行标准安装后:

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连接到它

d8tt03nd

d8tt03nd7#

如果你想拯救一个副本集的成员不要使用上面描述的方法,而是使用MongoDB的ReSync文档中描述的过程。

相关问题