MongoDB
 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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongodb $exists винаги връща 0

  2. Mongodb v4.0 Transaction, MongoError:Номера на транзакции са разрешени само за член на набор от реплика или mongos

  3. Създадени от MongoDB файлове

  4. Дублирайте документ в MongoDB, като използвате нов _id

  5. MongoDB $sum и $avg от поддокументи