MongoDB无法启动。

18

今天我更新了我的Mongo.. mongodb-stable(从10gen仓库获取)

但是我的服务已经停止了。 以下命令不起作用

$ sudo service mongodb start
$ start: Unknown job: mongodb

即使使用这个命令也无效

$ sudo /etc/init.d/mongodb start
$ Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mongodb start
Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the start(8) utility, e.g. start mongodb
start: Unknown job: mongodb

没有运行中的Mongo进程

$ ps -ef|grep mongo
$ user  9689  8121  0 13:01 pts/1    00:00:00 grep --color=auto mongo

日志在这里

tail /var/log/mongodb/mongodb.log 
Fri Dec 10 11:24:35 [conn4] end connection 127.0.0.1:54217
Fri Dec 10 11:25:35 [initandlisten] connection accepted from 127.0.0.1:54229 #5
Fri Dec 10 11:26:25 [initandlisten] connection accepted from 127.0.0.1:54243 #6
Fri Dec 10 11:26:30 [conn6] end connection 127.0.0.1:54243
Fri Dec 10 11:30:13 got kill or ctrl c or hup signal 15 (Terminated), will terminate after current cmd ends
Fri Dec 10 11:30:13 [interruptThread] now exiting
Fri Dec 10 11:30:13 dbexit: 

Fri Dec 10 11:30:13 [interruptThread] shutdown: going to close listening sockets...
Fri Dec 10 11:30:13 [interruptThread] closing listening socket: 5
Fri Dec 10 11:30:13 [interruptThread] closing listening socket: 6
Fri Dec 10 11:30:13 [interruptThread] closing listening socket: 7
Fri Dec 10 11:30:13 [interruptThread] closing listening socket: 8
Fri Dec 10 11:30:13 [interruptThread] shutdown: going to flush oplog...
Fri Dec 10 11:30:13 [interruptThread] shutdown: going to close sockets...
Fri Dec 10 11:30:13 [interruptThread] shutdown: waiting for fs preallocator...
Fri Dec 10 11:30:13 [interruptThread] shutdown: closing all files...
Fri Dec 10 11:30:13     closeAllFiles() finished

Fri Dec 10 11:30:13 [interruptThread] shutdown: removing fs lock...
Fri Dec 10 11:30:13 dbexit: really exiting now

目前,我只是暂时通过手动创建进程来运行Mongo的命令。

$ sudo mongod -f /etc/mongodb.conf

有任何想法吗? 还是有人通过更新管理器更新了Mongo-stable?

编辑:

这个mongodb版本是v1.6.5,看起来mongo团队将其发布为稳定版并带有一个bug。他们在v1.7.4立即修复了它。您可以查看重要优先级问题

6个回答

14

已汇报并修复了错误。

https://jira.mongodb.org/browse/SERVER-2200

$ sudo apt-get purge mongodb-stable 
$ sudo apt-get install mongodb-stable 
(如果在 /var/lib/mongodb 中存在锁定文件,则移除)  
$ sudo init 6 

然后编辑 /etc/init/mongodb.conf,删除 "limit nofile 20000" 这一行。

$ sudo vi /etc/init/mongodb.conf 
$ sudo service mongodb start
mongodb 启动/运行,进程编号为 2351

已经生效。


7

在运行 Ubuntu 11.10 之前,请确认您已安装最新版本的MongoDB:

$ mongod --version

db version v2.2.0

(如果您没有最新版本的MongoDB,请按照Ubuntu安装说明http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/

首先,请确认 mongodb 用户/组具有写入数据目录的权限:

$ sudo chown -R mongodb:mongodb /var/lib/mongodb/.

使用以下命令启动MongoDB 作为守护进程(后台进程):

$ mongod --fork --dbpath /var/lib/mongodb/ --smallfiles --logpath /var/log/mongodb.log --logappend

关闭MongoDB,请进入Mongo CLI,访问管理员并发出关闭命令:

$ ./mongo

> use admin

> db.shutdownServer()

请参阅: http://www.mongodb.org/display/DOCS/Starting+and+Stopping+Mongo


4
在运行$ mongo# mongo之后,我发现:
  • /data/db不存在
    sudo mkdir -p /data/db
  • mongod现在是一个启动项目
    sudo start --system mongod
(适用于Ubuntu 14.04 trusty)

2

我在chroot环境下运行Ubuntu Server 10.04最小安装版。即使我执行了以上操作,仍然会出现相同的错误信息。只有以下命令sudo mongod -f /etc/mongodb.conf有效,有什么提示吗?


您应该更新Mongodb。由Mongoteam修复。 - Ankhaa

1

你应该提到你使用的是哪个LINUX发行版和版本。

在Fedora 13和14上对我来说运行良好:

# service mongod status
mongod (pid 6403) is running...
# service mongod stop
Stopping mongod:                                           [  OK  ]
# service mongod start
Starting mongod: forked process: 7131
all output going to: /data/mongo/log/mongod.log
                                                               [  OK  ]

在您的系统上,“chkconfig | grep mongo”的输出是什么?

如果您从上述命令中没有得到任何输出,则仍需要使用“chkconfig”正确配置mongod作为服务(请参见'man chkconfig')。

e.g.:

chkconfig --add mongod
chkconfig --level 35 mongod on

之后您应该得到以下输出:

# chkconfig | grep mongo
mongod          0:off   1:off   2:off   3:on    4:off   5:on    6:off

# service mongod status
mongod (pid 6403) is running...

这个稳定版本是v1.6.5,但似乎mongo团队在发布时出现了一个bug。他们立即在v1.7.4中修复了它。请查看主要优先级问题https://jira.mongodb.org/browse/SERVER-2200。 - jargalan

1
如果进程没有运行,但您仍然遇到此异常 - 只需删除mongodb/data文件夹中的"mongodb.lock"文件即可。

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