MongoDB 通过 Mlab - MongoError:身份验证失败

Posted

技术标签:

【中文标题】MongoDB 通过 Mlab - MongoError:身份验证失败【英文标题】:MongoDB via Mlab - MongoError: Authentication failed 【发布时间】:2018-11-27 15:19:39 【问题描述】:

我正在使用 nodejs、expressJs 和 mongodb 创建一个简单的服务器

这里是 server.js

const express        = require('express');
const MongoClient    = require('mongodb').MongoClient;
const bodyParser     = require('body-parser');
const db             = require('./config/db');
const app            = express();
const port = 8000;
app.use(bodyParser.urlencoded( extended: true ));
MongoClient.connect(db.url, (err, database) => 
  if (err) return console.log(err)
  require('./app/routes')(app, database);
  app.listen(port, () => 
    console.log('We are live on ' + port);
  );               
)

注意:数据库信息一切正常,

当我运行 node server.js 时,我收到以下错误:

    C:\Users\Bonge\Documents\Projects\movies_database>node server.js
 MongoError: Authentication failed.
    at Function.MongoError.create (C:\Users\Bonge\Documents\Projects\movies_database\node_modules\mongodb-core\lib\error.js:31:11)
    at C:\Users\Bonge\Documents\Projects\movies_database\node_modules\mongodb-core\lib\connection\pool.js:497:72
    at authenticateStragglers (C:\Users\Bonge\Documents\Projects\movies_database\node_modules\mongodb-core\lib\connection\pool.js:443:16)
    at Connection.messageHandler (C:\Users\Bonge\Documents\Projects\movies_database\node_modules\mongodb-core\lib\connection\pool.js:477:5)
    at Socket.<anonymous> (C:\Users\Bonge\Documents\Projects\movies_database\node_modules\mongodb-core\lib\connection\connection.js:331:22)
    at emitOne (events.js:116:13)
    at Socket.emit (events.js:211:7)
    at addChunk (_stream_readable.js:263:12)
    at readableAddChunk (_stream_readable.js:250:11)
    at Socket.Readable.push (_stream_readable.js:208:10)
  name: 'MongoError',
  message: 'Authentication failed.',
  ok: 0,
  errmsg: 'Authentication failed.',
  code: 18,
  codeName: 'AuthenticationFailed' 

我的代码有什么问题?

【问题讨论】:

显示您的数据库配置文件并检查***.com/questions/30924859/… 你的 mongoose 和 mongodb 版本是多少?还有配置文件 @Ashish mongodb 版本:“mongodb”:“^2.2.33”, @GauravPaliwal module.exports = url: "mongodb://dbnameusername:dbpass@ds255260.mlab.com:55260/dbname" @HotZellah doc 说:可选。如果连接字符串包含用户名:密码@ 形式的身份验证凭据,则要进行身份验证的数据库的名称。如果未指定 /database 并且连接字符串包含凭据,则驱动程序将对管理数据库进行身份验证。 【参考方案1】:

我发现解决方案刚刚创建了新数据库和新用户,现在一切正常

【讨论】:

以上是关于MongoDB 通过 Mlab - MongoError:身份验证失败的主要内容,如果未能解决你的问题,请参考以下文章

适用于mLab Mongodb查询的索引

MongoDB 收购数据云储存公司 mLab

如何从mlab导出到本地mongoDB

mLab 上的 MongoDB 身份验证失败

MongoDB 托管选项现在 Heroku mLab 附加组件正在被删除

MongoDB 托管选项现在 Heroku mLab 附加组件正在被删除