Ошибка аутентификации, код 18 при подключении к базе данных MongoLab

Я пытаюсь подключиться к базе данных MongoLab, но продолжаю получать следующую ошибку при подключении:

{ [MongoError: auth failed] name: 'MongoError', ok: 0, errmsg: 'auth failed', code: 18 }

код, который я использую для подключения:

var mongoose = require("mongoose");

mongoose.connect("mongodb://username:password@ds061474.mongolab.com:61474/apitest");

mongoose.connection.on('error', function (err) {
    console.log(err);
});

когда я подключаюсь с помощью оболочки, у меня нет никаких проблем. Что я делаю не так?

3 ответов


Я столкнулся с аналогичной проблемой при подключении Mongo db с помощью мангуста. После изучения некоторое время я обнаружил, что mongoLab использует аутентификацию SCRAM-SHA-1. См. вопрос ниже я попытался обновить свой Мангуст до V4.1.11, и тогда это работает для меня

аутентификация в мангусте с помощью SCRAM-SHA-1


имел эту ошибку сам, оказывается, я сделал две вещи неправильно (спасибо Idos):

  1. использовал mongolab.com имя пользователя вместо базы данных.
  2. пытался подключиться к базе данных mongo 3.4, используя оболочку 2.6, предоставленную через репозитории Ubuntu. mongo --version чтобы проверить.

следуйте инструкциям от эта страница MongoDB чтобы добавить свои ключи и репозитории к вашим источникам APT, чтобы обновить и сохранить ваш MongoDB установка обновлена в будущем.


я столкнулась с той же проблемой, когда я пытаюсь импортировать данные из локали на сервере.

эти 2 параметра могут быть важны, он работал после того, как я их поставил:

--authenticationMechanism 'MONGODB-CR' 
--authenticationDatabase "admin"

будьте осторожны с механизмом auth,может быть другим. Проверьте эту часть документации: https://docs.mongodb.com/manual/reference/program/mongoimport/#cmdoption-mongoimport-authenticationmechanism