Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does authSource means in mongo database url?

Tags:

i am trying to connect to my mongo database with following connection string

var Mongo_url = 'mongodb://MyUSer:tech@localhost:27017/chatme?authSource=admin';  

I am getting error as

 assertionError: null == { [MongoError: Authentication failed.]
 name: 'MongoError',
 message: 'Authentication failed.',
 ok: 0,
 code: 18,

Could anyone please clear this "authSource=admin" thing to me.

like image 214
gaurav malik Avatar asked Nov 15 '16 11:11

gaurav malik


2 Answers

This is the name of the database that has the collection with the user credentials.

https://docs.mongodb.com/manual/reference/connection-string/#connections-connection-options

This is where the usernames and passwords are set up.

like image 125
Thilo Avatar answered Oct 02 '22 16:10

Thilo


I spent a few hours today trying to solve this problem and unfortunately, this SO post didn't appear in my searches. That was too bad because it's the post with the best answer to the problem.

I hope to help the next person by adding the error message I got.

I'm setting up the connection inside a Docker container that is spun up via a docker-compose yaml file. The user name and password are passed into docker-compose from a .env file.

Connection URI that works

mongodb://aUser:aPassword@mevn-app-mongo:27017/myDb?authSource=admin

Error:

SASL SCRAM-SHA-1 authentication failed for aUser on myDb from client 172.25.0.3:37352 ; UserNotFound: Could not find user aUser@myDb
like image 27
Bryan Avatar answered Oct 02 '22 15:10

Bryan