Var, dvs i vilken databas skapade du användaren? Vanligtvis skapas användare i databasen admin
. När du ansluter till en MongoDB bör du alltid ange autentiseringsdatabasen och den databas du vill använda.
Standardinställningarna är lite förvirrande och inte riktigt konsekventa, se den här tabellen för att få en översikt:
+----------------------------------------------------------------------------------------+
|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 |
+----------------------------------------------------------------------------------------+
Om du vill använda anslutningssträng i URI-format, skulle den motsvara dessa:
mongodb://<username>:<password>@hostname/myDB?authSource=admin
mongodb://<username>:<password>@hostname/myDB
mongodb://<username>:<password>@hostname?authSource=admin
mongodb://<username>:<password>@hostname
Jag antar att du skapade användaren i admin
databas men eftersom du inte anger autentiseringsdatabas när du ansluter, använder Mongo den som standard till mydatabase
där det misslyckas, eftersom användaren inte finns i databasen mydatabase
.