如何在一个命令中停止mongo数据库

我需要能够在cli上启动/停止MongoDB。 开始很简单:

./mongod

但是要停止mongo DB,我需要首先运行打开的mongo shell,然后键入两个命令:

$ ./mongo

使用pipe理员

db.shutdownServer()

所以我不知道如何在一行中停止mongo DB。 任何帮助?

在MongoDB手册中介绍了启动和停止MongoDB 。 它解释了通过shell,cli,驱动程序等来停止MongoDB的各种选项。它还详细介绍了错误地停止MongoDB(比如数据损坏)的风险,并讨论了不同的kill信号。

此外,如果您已经使用Ubuntu或Debian的软件包pipe理器安装了MongoDB,那么您可以按如下步骤停止mongod:

  • 新贵: sudo service mongod stop

  • Sysvinit: sudo /etc/init.d/mongod stop

或在Mac OS X上

  • 使用$ top查找mongod进程的PID

  • 杀死进程$ kill <PID> ( Mongo文档有更多的信息 )

或者在基于Red Hat的系统上:

  • service mongod stop

或者在Windows上,如果您已经安装了一个名为MongoDB的服务:

  • net stop MongoDB

如果不作为服务安装(从Windows 7+开始),您可以运行:

  • taskkill /f /im mongod.exe

要了解有关不清洁关机问题的更多信息,请参阅: 意外关机后恢复数据 。如何最好地避免这种情况,以及在不正常关机的情况下应采取的措施。

如果你真的想要一行代码与你原来的问题相同,你可以使用别名:

mongo --eval "db.getSiblingDB('admin').shutdownServer()"

Mark通过服务来启动和停止MongoDB的答案是更典型的(并且是推荐的)pipe理方法。

mongod --dbpath /path/to/your/db --shutdown

官方更多信息: http : //docs.mongodb.org/manual/tutorial/manage-mongodb-processes/

如果服务器在terminal中作为前台进程运行,则可以通过按下来完成

 Ctrl-C 

干净地closures正在运行的服务器的另一种方法是使用shutdown命令,

 > use admin > db.shutdownServer(); 

否则,可以使用像kill这样的命令来发送信号。 如果mongod具有10014作为其PID,则该命令将是

 kill -2 10014 

一个内线使用命令行来启动或停止mongodb服务;

  1. 要启动服务,请使用: NET START MONGODB
  2. 停止服务使用: NET STOP MONGODB

我自己用这个,确实有用。

我只是做了:

quit();

请注意我正在使用mongo 3.0。

蒙戈

使用mongod --shutdown

根据官方文档: manage-mongodb-processes /

:d

我在Ubuntu上使用这个启动脚本。

 #!/bin/sh ### BEGIN INIT INFO # Provides: mongodb # Required-Sart: # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: mongodb # Description: mongo db server ### END INIT INFO . /lib/lsb/init-functions PROGRAM=/opt/mongo/bin/mongod MONGOPID=`ps -ef | grep 'mongod' | grep -v grep | awk '{print $2}'` test -x $PROGRAM || exit 0 case "$1" in start) log_begin_msg "Starting MongoDB server" ulimit -v unlimited. ulimit -n 100000 /opt/mongo/bin/mongod --fork --quiet --dbpath /data/db --bind_ip 127.0.0.1 --rest --config /etc/mongod.conf. log_end_msg 0 ;; stop) log_begin_msg "Stopping MongoDB server" if [ ! -z "$MONGOPID" ]; then kill -15 $MONGOPID fi log_end_msg 0 ;; status) ;; *) log_success_msg "Usage: /etc/init.d/mongodb {start|stop|status}" exit 1 esac exit 0 

从给定的命令,我认为你在Linux上。

启动MongoDB:

 $ sudo service mongod start mongod start/running, process XXXXX 

检查状态:

 $ sudo service mongod status mongod start/running, process XXXXX 

停止MongoDB:

 $ sudo service mongod stop mongod stop/waiting 

在你的mac上的terminal窗口中,按下control + c

视窗

在PowerShell中,它是: Stop-Service MongoDB

然后再次Start-Service MongoDBStart-Service MongoDB

要validation它是否已启动,请运行: net start | findstr MongoDB net start | findstr MongoDB

注意:上面假设MongoDB被注册为服务 。

创build一个名为mongostop.bat的文件

将下面的代码保存在其中

  mongo admin --eval "db.shutdownServer()" 

运行文件mongostop.bat并成功停止mongo