Ошибка аутентификации, код 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, и тогда это работает для меня
имел эту ошибку сам, оказывается, я сделал две вещи неправильно (спасибо Idos):
- использовал mongolab.com имя пользователя вместо базы данных.
- пытался подключиться к базе данных 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