sql >> データベース >  >> NoSQL >> MongoDB

mongodbに保存しようとしたときに認証に失敗しました

    どこで、つまりどのデータベースでユーザーを作成しましたか?通常、ユーザーはデータベースadminで作成されます 。 MongoDBに接続するときは、常に認証データベースと使用するデータベースを指定する必要があります。

    デフォルトは少し紛らわしく、実際には一貫性がありません。概要については、次の表を参照してください。

    +----------------------------------------------------------------------------------------+
    |Connection string                                           | Authentication | Current  |
    |                                                            | database       | database |
    +----------------------------------------------------------------------------------------+
    |mongo -u <...> -p <...> --authenticationDatabase admin myDB |     admin      |   myDB   |
    |mongo -u <...> -p <...> myDB                                |     myDB       |   myDB   |
    |mongo -u <...> -p <...> --authenticationDatabase admin      |     admin      |   test   |
    |mongo -u <...> -p <...> localhost:27017                     |     test       |   test   |
    |mongo -u <...> -p <...> --host localhost:27017              |     admin      |   test   |
    |mongo -u <...> -p <...>                                     |     admin      |   test   |
    +----------------------------------------------------------------------------------------+
    

    URI形式の接続文字列を使用する場合は、次の文字列に対応します。

    mongodb://<username>:<password>@hostname/myDB?authSource=admin
    mongodb://<username>:<password>@hostname/myDB
    mongodb://<username>:<password>@hostname?authSource=admin
    mongodb://<username>:<password>@hostname
    

    adminでユーザーを作成したと思います データベースですが、接続時にauthenticationDatabaseを指定しないため、Mongoはデフォルトでmydatabaseに設定します。 ユーザーがデータベースmydatabaseに存在しないため、失敗した場合 。




    1. MapReduceのHadoopリデューサークラスとは何ですか?

    2. ブラウザで実行されているJavaScriptからRedisサーバーに直接接続できますか?

    3. MongoDBコレクションからドキュメントのランダムサンプルを返す3つの方法

    4. 文字列をobjectIDforeignFieldにルックアップするための回避策が必要です