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”, @GauravPaliwalmodule.exports = url: "mongodb://dbnameusername:dbpass@ds255260.mlab.com:55260/dbname"
@HotZellah doc 说:可选。如果连接字符串包含用户名:密码@ 形式的身份验证凭据,则要进行身份验证的数据库的名称。如果未指定 /database 并且连接字符串包含凭据,则驱动程序将对管理数据库进行身份验证。
【参考方案1】:
我发现解决方案刚刚创建了新数据库和新用户,现在一切正常
【讨论】:
以上是关于MongoDB 通过 Mlab - MongoError:身份验证失败的主要内容,如果未能解决你的问题,请参考以下文章