シナリオ:マシンに MongoDB 2.2.3をインストール しました(Windows 64ビット)
すべての手順に従って、MongoDBサーバーで認証を実施しました。
管理データベースにユーザーを追加
use admin db.addUser('me_admin', '12345'); db.auth('me_admin','12345');
--auth
認証を有効にするオプションを使用してデータベースサーバー(mongod.exeプロセス)を実行しました
同様の質問に対するすべての回答に従いました: ユーザー名とパスワードでMongoDBを保護する方法
問題:新しいバージョン2.2.3では、認証を設定できません。同じ手順を実行した後、同じマシンでバージョン2.0.8の認証を設定できました。しかし、MongoDBのドキュメントのどこかで、「ローカルホストでの認証はバージョン2.2の前後でわずかに異なる」と述べられています。
質問:変更点は何ですか。また、新しいバージョン、つまり2.2以降で認証を実施するにはどうすればよいですか。誰かが新しいMongoDB2.2.3で同じことを進めるためのアイデアや解決策を与えることができますか?
更新:コマンドプロンプトからパラメーターを使用して
mongod.exe
プロセス
を開始すると、2.2.3でも認証が同じように機能することを確認しました。--auth
ドキュメントauth=true
に記載されているように設定ファイルでパラメータを使用していましたが、これは機能しませんでした。
行われた調査:
mongod.cfg
ファイルに以下の構成が含まれている場合logpath=c:\mongodb\log\mongo.log, auth=true, profile=2
この
log.txt
ファイルには次のログが含まれていますMon Mar 11 15:06:35 Trying to start Windows service 'MongoDB' Mon Mar 11 15:06:35 Service running Mon Mar 11 15:06:35 [initandlisten] MongoDB starting : pid=7152 port=27017 dbpath=\data\db\ 64-bit host=AMOL-KULKARNI Mon Mar 11 15:06:35 [initandlisten] db version v2.2.3, pdfile version 4.5 Mon Mar 11 15:06:35 [initandlisten] git version: f570771a5d8a3846eb7586eaffcf4c2f4a96bf08 Mon Mar 11 15:06:35 [initandlisten] build info: windows sys.getwindowsversion(major=6, minor=1, build=7601, platform=2, service_pack='Service Pack 1') BOOST_LIB_VERSION=1_49 Mon Mar 11 15:06:35 [initandlisten] options: { config: "C:\mongodb\mongod.cfg", logpath: "c:\mongodb\log\mongo.log auth=true profile=2", service: true } Mon Mar 11 15:06:35 [initandlisten] journal dir=/data/db/journal Mon Mar 11 15:06:35 [initandlisten] recover : no journal files present, no recovery needed Mon Mar 11 15:06:35 [initandlisten] waiting for connections on port 27017 Mon Mar 11 15:06:35 [websvr] admin web console waiting for connections on port 28017
コマンドプロンプトから実行すると
mongod --auth
、次のログが表示されます。Mon Mar 11 15:09:40 [initandlisten] MongoDB starting : pid=6536 port=27017 dbpath=\data\db\ 64-bit host=AMOL-KULKARNI Mon Mar 11 15:09:40 [initandlisten] db version v2.2.3, pdfile version 4.5 Mon Mar 11 15:09:40 [initandlisten] git version: f570771a5d8a3846eb7586eaffcf4c2f4a96bf08 Mon Mar 11 15:09:40 [initandlisten] build info: windows sys.getwindowsversion(major=6, minor=1, build=7601, platform=2, service_pack='Service Pack 1') BOOST_LIB_VERSION=1_49 Mon Mar 11 15:09:40 [initandlisten] options: { auth: true } Mon Mar 11 15:09:40 [initandlisten] journal dir=/data/db/journal Mon Mar 11 15:09:40 [initandlisten] recover : no journal files present, no recovery needed Mon Mar 11 15:09:40 [initandlisten] waiting for connections on port 27017 Mon Mar 11 15:09:40 [websvr] admin web console waiting for connections on port 28017
注:の変更options:
options:{ config: "C:\mongodb\mongod.cfg", logpath: "c:\mongodb\log\mongo.log auth=true profile=2", service: true }
//動作しませんoptions: { auth: true }
//動作します
観察するのが面白いのは、
構成ファイルから実行されたとき。
logpath=c:\mongodb\log\mongo.log, auth=true, profile=2
次のように変更されました:
logpath: "c:\mongodb\log\mongo.log auth=true profile=2", service: true
私はここに問題があることを知っています。次のようになります。
logpath: "c:\mongodb\log\mongo.log", auth=true, profile="2", service: true
したがって、問題は、auth=true
構成ファイルからパラメーターを渡しmongod.exe
、Windows7でサービスとしてプロセスを実行する方法です。