web-dev-qa-db-ja.com

Windowsでmongodbサーバーを停止する方法は?

Nginx/PHP/MongoDBスタックを使用しており、2つのバッチファイルを作成してWindowsで開発環境をセットアップしようとしています。

start.bat

cd C:\www\nginx
start nginx
cd C:\www\php
start php-cgi.exe -b 127.0.0.1:9000
cd C:\www\mongodb
start mongod

stop.bat

cd C:\www\nginx
nginx -s quit
cd C:\www\php
taskkill /F /IM php-cgi.exe
cd C:\www\mongodb
mongo --eval "use admin; db.shutdownServer(); quit"  # this doesn't work
mongo --eval stop_mongod.js  # this doesn't work either

Taskkillを使用してmongodを停止することは、データの破損につながる可能性があるため、オプションではありません。助言がありますか?

13
Vitaly

Mongoシェルから ドキュメント


dbnameを使用する

このコマンドは、スクリプトモードでは機能しません。代わりに、接続でデータベースを明示的に定義する必要があります(上記の例では/ dbname)。

または、スクリプト内で接続を作成することもできます。

db2 = connect("server:27017/otherdbname")

私は次のコードを思いついた:次のスニペットをstop_mongod.jsファイルに保存する:

 db = connect("localhost:27017/admin");
 db.shutdownServer();
 quit();

必要に応じて接続文字列を調整します。次に、コマンドラインから、またはバッチスクリプト内で:

mongo stop_mongod.js
12
Todor Bukov

それが適切な方法かどうかはわかりません。killを送信すると、mongoサーバーが損傷する可能性があり、クラッシュした場合はデータベースを修復する必要があります。

たぶんあなたはすでにこの質問を解決しましたが、これが私がすることです:

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

管理者のコレクションに自動的に接続し、次に、絶滅を実行する必要があります。

Mongodbを適切に停止する方法に関する公式リンクは次のとおりです: http://api.mongodb.org/wiki/current/Starting%20and%20Stopping%20Mongo.html

ベスト

24
JulienD

サーバーがターミナルでフォアグラウンドプロセスとして実行されている場合、これはを押すことで実行できます。

Ctrl-C

実行中のサーバーをクリーンにシャットダウンする別の方法は、shutdownコマンドを使用することです。

> use admin
> db.shutdownServer();
9
Nanhe Kumar
  1. 管理者としてコマンドプロンプト/ Powershellを開きます。
  2. 「netstopMongoDB」を実行します
5
Rut Shah

Windowsコマンドラインから。 64ビットのWindows7 ProSP1でMongoDB3.4サーバーを使用しています。

次のリンクで手順を説明します。

configure-a-windows-service-for-mongodb-community-edition

manually-create-a-windows-service-for-mongodb-community-edition

次のコンソールコマンドラインは、起動時にMongoDBを終了します。

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Windows\System32>"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe" --remove
2017-12-06T08:15:47.883-0600 I CONTROL  [main] Trying to remove Windows service 'MongoDB'
2017-12-06T08:15:47.884-0600 I CONTROL  [main] Service 'MongoDB' removed

MongoDBサービスの作成コマンドライン(以下に表示)は、次のWindowsレジストリにあります。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MongoDB

確認するには、次の手順を実行します。

C:\Windows\System32>sc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe\" --service --c
onfig=\"C:\Program Files\MongoDB\Server\3.4\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
[SC] CreateService SUCCESS

C:\Windows\System32>net start MongoDB
The MongoDB service is starting.
The MongoDB service was started successfully.

C:\Windows\System32>net stop MongoDB
The MongoDB service is stopping.
The MongoDB service was stopped successfully.

C:\Windows\System32>"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe" --remove
2017-12-06T08:16:36.504-0600 I CONTROL  [main] Trying to remove Windows service 'MongoDB'
2017-12-06T08:16:36.505-0600 I CONTROL  [main] Service 'MongoDB' removed

C:\Windows\System32> 
4
ChromaBurst

TASKKILL/IM mongod.exeを使用すると、mongodbサーバーを正常に終了できると思います。

1
Vitaly