Сбой проверки подлинности MongoDB на mLab

создал новый аккаунт mLab и создана база данных по шагам здесь http://docs.mlab.com/#create-sub . Попытка подключения к базе данных с помощью оболочки mongo и узла mongoose.модуль на JS, но я вижу 'проверки' errorin обоих случаях.

в оболочке Mongo команда, я дважды проверил учетные данные

mongo ds012345.mlab.com:56789/dbname -u dbuser -p dbpassword

ошибка:

MongoError: authentication fail
at Function.MongoError.create (E:Gatsbynotmongoosenode_modulesmongodb-coreliberror.js:31:11)

С Помощью Мангуста

var mongoose = require('mongoose')
, Admin = mongoose.mongo.Admin;

var uri = '<correct mongo uri here>';

var connection = mongoose.createConnection(uri,
{    
User: '<uname>',
Password: '<pwd>'
});
connection.on('open', function() {

console.log('connection established!!!');

new Admin(connection.db).listDatabases(function(err, result) {
    console.log('listDatabases succeeded');
    console.log(err);
    console.log(result); 
});

});

ошибка:: MongoConnect ошибка MongoError: ошибка аутентификации

есть ли что-то еще, что нужно сделать на консоли mLab или что-то еще, что я могу делать неправильно или отсутствует?

5 ответов


необходимо создать нового пользователя для базы данных в учетной записи mLab.и войдите в систему с созданным пользователем на учетной записи mlab.затем нажмите на конкретную базу данных и перейдите на вкладку Пользователи, смотрите на рисунке ниже: users tab and add new user

теперь заполните форму и создайте пользователя для базы данных. См. на рисунке ниже:

enter image description here

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

var mongoose = require('mongoose');

var mongoDB = "mongodb://<username>:<password>@ds241489.mlab.com:41489/<DB Name>";

mongoose.connect(mongoDB, {
    useMongoClient: true
});

var db = mongoose.connection;

db.on('error', console.error.bind(console, 'MongoDB connection error:'));

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

моя база данных mLab mongo была версией 3.4.9, но версия командной строки клиента, которая у меня была, которая пришла из официальных репозиториев Ubunty Xenial, была версией 2.6.10.

Это ошибка с "аутентификацией не удалось", хотя используемые учетные данные (учетные данные базы данных, а не учетные данные пользователя mlab) были правильными.


вы, вероятно, используете учетные данные mLab для dbuser и dbpassword.

вы должны создать нового пользователя для базы данных в использовании веб-интерфейса mLab и попробуйте войти в систему с этим пользователем.

вот как вы можете создать пользователя для базы данных в mLab:

  1. Выберите Databse
  2. переключатель пользователи tab
  3. клик add database user

 var mongoose = require('mongoose');

 var mongoDB = "mongodb://user:123456@ds114989.mlab.com:13936/brary";

 mongoose.connect(mongoDB, {
    useMongoClient: true
 });

 var db = mongoose.connection;

 db.on('error', console.error.bind(console, 'MongoDB connection error:'));

Примечание.: Вам нужно создать пользователя для базы данных на Mlab. Это не ваши данные для входа в учетную запись на Mlab. Вот мой заменяется пользователей и dbpassword заменить 123456 Если ваш пароль содержит специальный символ, такой как@, # u нужно избежать его, заключив "dbuser": "dbpassword"


вы уверены, что используете имя пользователя и пароль базы данных? потому что в большинстве случаев люди используют имя пользователя своей учетной записи.

выберите БД и нажмите на пользователей, то вы можете найти имя пользователя БД