Не удалось подключиться к mongolab, получить сообщение MongoError: auth failed

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

var mongoose = require('mongoose');
mongoose.connect('mongodb://mk:[email protected]:47742/mkdb');

Я всегда получаю следующую ошибку

MongoError: auth failed
at Function.MongoError.create (/Users/a042292/Desktop/start/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/error.js:31:11)
at /Users/a042292/Desktop/start/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:793:66
at Callbacks.emit (/Users/a042292/Desktop/start/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:94:3)
at null.messageHandler (/Users/a042292/Desktop/start/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:235:23)
at Socket.<anonymous> (/Users/a042292/Desktop/start/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/connection/connection.js:259:22)
at Socket.emit (events.js:107:17)
at readableAddChunk (_stream_readable.js:163:16)
at Socket.Readable.push (_stream_readable.js:126:10)
at TCP.onread (net.js:538:20)

Ответы

Ответ 1

Mongolab обновил свои базы данных 2.6.x до версии 3.0.x. К сожалению, у mongo3 есть другой механизм аутентификации, поэтому старые клиенты несовместимы.

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

Для тех, кто использует mongojs, обновите до последней версии и добавьте параметр authMechanism:'ScramSHA1' в объект опций при подключении:

db = mongojs('mongodb://username:[email protected]:32132/mydb', ["mycollection"], {authMechanism: 'ScramSHA1'});

Ответ 2

Убедитесь, что вы используете базу данных username и password не учетную запись username и password из Mlab.

В MLab, ранее MongoLab, выполните следующие

  • Перейдите к Users
  • Add Database User
  • Выберите свое имя пользователя и пароль

Теперь вы можете проверить это на оболочке с помощью  mongo ds061374.mlab.com:61374/yourdb -u <dbuser> -p <dbpassword>

Ответ 4

1- убедитесь, что db запущен и работает. 2- не забудьте создать пользователя db для получения учетных данных доступа.

Пожелайте, что вам помогут!