MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBのシャットダウンコマンドが使えないときの対処法|adminデータベースへの切り替え手順を解説

MongoDBでサーバーをシャットダウンしようとして「シャットダウンオプションが利用できない」と感じたことはありませんか?実は、db.shutdownServer()コマンドはadminデータベース上でのみ実行できるため、事前にデータベースを切り替える必要があります。この記事では、正しいシャットダウン手順を実行例とともにわかりやすく解説します。

MongoDBをシャットダウンする基本の手順

1. adminデータベースに切り替える

まず、mongoシェル(mongosh)で以下のコマンドを実行し、カレントデータベースをadminに切り替えます。

use admin

シャットダウン操作はサーバー全体に関わる管理コマンドのため、権限管理の観点からadminデータベースでのみ許可されています。一般ユーザー用のデータベースを選択したまま実行しても、コマンドは機能しません。

2. db.shutdownServer() を実行する

adminデータベースに切り替えたら、次のコマンドでサーバーを停止します。

db.shutdownServer()

実際の実行例

上記の手順を実際に実行すると、以下のようになります。

> use admin
switched to db admin
> db.shutdownServer()

コマンド実行後、コンソールには次のような出力が表示されます。

server should be down...
2019-04-22T19:11:40.949+0530 I NETWORK [js] trying reconnect to 127.0.0.1:27017 failed
2019-04-22T19:11:42.197+0530 I NETWORK [js] reconnect 127.0.0.1:27017 failed failed

出力メッセージの意味

「reconnect ... failed」というエラー風のメッセージが表示されますが、これは異常ではありません。シャットダウンコマンドの実行によってサーバーが停止したため、シェルが自動的に再接続を試みても接続先が存在しない状態だからです。「server should be down...」というメッセージは、サーバーの停止処理が正常に行われたことを示しています。

補足:シャットダウン時の注意点

  • 認証が有効な場合:アクセス制御を有効化している環境では、shutdown権限を持つユーザーで認証してから実行する必要があります。
  • レプリカセットの場合:セカンダリノードに対して実行すると、そのノードのみが停止します。プライマリノードで実行した場合は、フェイルオーバーが発生する可能性があります。
  • 代替手段:シェルを使わずに停止したい場合は、OS側からmongod --shutdown(Linuxの場合)やプロセス管理ツール(systemdなど)経由で停止することもできます。

まとめると、MongoDBのシャットダウンコマンドが「使えない」ように見える場合は、adminデータベースへ切り替えていないことが主な原因です。use admindb.shutdownServer() の順に実行すれば、確実にサーバーを停止できます。

  1. MongoDBコレクションから一意の値(重複なし)を取得する方法【distinct()の使い方】

    MongoDBでコレクション内の重複データを除外し、一意の値だけを取得したい場合は、distinct()メソッドを使用します。distinct()は、指定したフィールドに含まれる重複しない値を1つのコレクション全体から検索し、その結果を配列として返します。サンプルコレクションの作成まず、insertOne()を使ってドキュメントを挿入し、コレクションを作成します。> db.demo704.insertOne({"LanguageCode":"hi"}); { "acknowledged" : true, &quo

  2. Windows 10で管理者権限を取得する方法【状況別の対処法を徹底解説】

    Windowsでは、ユーザーアカウントは「管理者(Administrator)」と「標準(Standard)」の2種類に分けられています。標準アカウントでも、他のユーザーに影響しない範囲の変更――個人設定や自分用ソフトウェアのインストールなど――は行えます。しかし、日時の変更や保護されたシステムファイルへのアクセス、新しいユーザーの追加など、システム全体に関わる操作には管理者アカウントが必要です。 「操作しようとしたら管理者権限がないと言われた」という経験はありませんか?この記事では、Windows 10で管理者権限を取得するためのさまざまな方法をわかりやすく解説します。 まず確認:そもそ