この記事では、主に mongodb 3.4 でのリモート接続認証エラーの解決策をサンプル コードを通じて詳しく紹介します。この記事は、誰にとっても一定の参考と学習価値があります。必要な方はこのエディターをフォローしてください。以下、起きて勉強してください。
はじめに
mongodbで認証機能をオンまたはオフにするのは非常に面倒です。新しいサービスを作成してmongod --auth
と入力する必要があります。便宜上、ここでは 2 つのサービスを構築しており、使用するサービスに切り替えることができます。 mongod --auth
。为了方便,我这里是建了两个服务,用到哪个就切换至哪个服务。
--需要授权 mongod --logpath "D:\data\log\mongodb.log" --logappend --dbpath "D:\data\db" --auth --serviceName "MongoDBService" --serviceDisplayName "MongoDBService" --install --不需要授权 mongod --logpath "D:\data\log\mongodb.log" --logappend --dbpath "D:\data\db" --serviceName "MongoDBServiceNoAuth" --serviceDisplayName "MongoDBServiceNoAuth" --install
进入正题,我这边配置mongodb后,本地是可以通过db.auth('username','password')
进入的,远程使用客户端工具及c#代码都无法进入。检查并没有开启防火墙,mongodb数据库又是默认所有ip都可以访问的。
后来偶然看到"使用Robomongo 连接MongoDB 3.x 报 Authorization failed 解决办法 "这篇文章按照上面的方法做就可以了。
方法如下:
1.首先我这边通过数据库版本查看发现是这样的。
> use admin switched to db admin > db.system.version.find() { "_id" : "featureCompatibilityVersion", "version" : "3.4" } { "_id" : "authSchema", "currentVersion" : 5 }
2.开启MongoDBServiceNoAuth服务,使用db.dropUser('username')
>db.dropUser('admin') >db.dropUser('root') >db.dropUser('dba') >db.system.version.update({"_id":"authSchema"},{$set:{"currentVersion":3}})
ここで mongodb を設定したら、db.auth('username','password')
を通じてローカルにアクセスし、クライアント ツールと C# コードを使用できるようになります。遠隔からは誰も入ることができません。ファイアウォールが有効になっていないこと、およびデフォルトですべての IP から mongodb データベースにアクセスできることを確認してください。
後になって、「
Robomongo を使用して MongoDB 3.x に接続し、認証失敗の解決策が報告されました」を偶然目にしました。この記事は上記の方法に従っているだけです。
🎜方法は次のとおりです: 🎜🎜🎜🎜 まず、データベースのバージョンを確認したところ、これが該当することがわかりました。 🎜🎜🎜🎜> db.createUser({user:"admin",pwd:"********",roles:[{"role":"userAdminAnyDataba se","db":"admin"},{"role":"readWrite","db":"qxkf"}]}) Successfully added user: { "user" : "admin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" }, { "role" : "readWrite", "db" : "qxkf" } ] }
db.dropUser('username')
コマンドを使用して元のユーザーをすべて 🎜削除🎜してから、バージョン変更コマンドを実行します。 🎜🎜🎜🎜rrreee🎜3. 複製ユーザーを作成します🎜rrreee🎜4. Robomongo ツールを使用して、アクセス可能かどうかを確認できます。 🎜🎜🎜🎜以上がmongodb 3.4 でリモート接続認証が失敗した場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。