Сбой проверки подлинности 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.затем нажмите на конкретную базу данных и перейдите на вкладку Пользователи, смотрите на рисунке ниже:
теперь заполните форму и создайте пользователя для базы данных. См. на рисунке ниже:
теперь, в коде, используйте следующую строку для подключения:
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:
- Выберите Databse
- переключатель пользователи tab
- клик
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"
вы уверены, что используете имя пользователя и пароль базы данных? потому что в большинстве случаев люди используют имя пользователя своей учетной записи.
выберите БД и нажмите на пользователей, то вы можете найти имя пользователя БД