skip to Main Content

I’m running a local MongoDB server and am trying to connect to it from a node.js server using the Mongoose library.

I’m using SCRAM-SHA-1 as the authentication mechanism

I’m able to connect to it with the admin account when I don’t specify a database to connect to, using a connection string such as:

mongodb://{username}:{password}@{address}:{port}?authMechanism=SCRAM-SHA-256

But when I try to specify which database to connect to, using a connection string such as:

mongodb://{username}:{password}@{address}:{port}/database123?authMechanism=SCRAM-SHA-256

the authentication fails.

For reference, my code looks like:

    const mongoose = require('mongoose');

    let conn_string = `mongodb://mongo_uname:[email protected]:3000/database123?authMechanism=SCRAM-SHA-256`

    mongoose
    .connect(database_uri, {
        useUnifiedTopology: true
    })
    .then(() => console.log('MongoDB database Connected...'))
    .catch((err) => console.log(err))

Is there a different way to specify which database to connect to with mongoose, or is there something I can do differently when constructing the connection string to make it work?

Cheers.

4

Answers


  1. Chosen as BEST ANSWER

    My error ended up being in the configuration of the database user I was trying to connect with, they weren't even set up to read or write to the database I was attempting to connect to.


  2. import mongoose from "mongoose";
    
    const mongoDB = "mongodb://localhost:27017/twlight";
    mongoose.Promise = global.Promise;
    
    mongoose.connect(mongoDB, { useNewUrlParser: true })
    .then(() => {
      console.log("Database is connected");
    },
    (err) => {
    console.log("There is problem while connecting database " + err);
    });
    

    Please try

    Note: twilight is database name

    Login or Signup to reply.
  3. If you are using Mongoose v6+, you should NOT specify useUnifiedTopology.

    That is deprecated and if you include it, Mongoose will throw the error. Try to include the connection string only:

    mongoose.connect(database_uri)
    
    Login or Signup to reply.
  4. Make sure that the database user you are using is configured to read and write to the database uou are trying to connect to.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search