无法连接到mongolab,正在获取MongoError:auth失败
我最近在mongoLab中创build了一个帐户。当我尝试使用下面的语句连接到数据库。
var mongoose = require('mongoose'); mongoose.connect('mongodb://mk:12345@ds047742.mongolab.com: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)
Mongolab将他们的2.6.x数据库升级到3.0.x. 不幸的是,mongo3有不同的authentication机制,所以旧的客户端不兼容。
mongoose使用本地mongo驱动程序,所以你必须升级它。 这通常通过升级当地的mongo安装来完成。
对于那些使用mongojs的用户,升级到最新版本并在连接时在选项对象中添加authMechanism:'ScramSHA1'
参数:
db = mongojs('mongodb://username:password@ds31341.mongolab.com:32132/mydb', ["mycollection"], {authMechanism: 'ScramSHA1'});
确保您使用的是数据库username
和password
而不是Mlab的帐户username
和password
。
在以前的MongoLab MLAB中,做以下操作
- 导航到
Users
-
Add Database User
- select你的用户名和密码
现在你可以用mongo ds061374.mlab.com:61374/yourdb -u <dbuser> -p <dbpassword>
在shell上testing这个mongo ds061374.mlab.com:61374/yourdb -u <dbuser> -p <dbpassword>
对我来说,解决scheme是:
$ npm install --save --save-exact mongoose@4.1.9
根据: Heroku的应用程序崩溃后,MongoDB更新到3.0
1-确保数据库已启动并正在运行。 2-不要忘记创build数据库用户有访问凭据。
希望这会帮助你!
- 用mongoose连接Mlab
- 如何使用node.js后端服务器与前端和mongolab数据库进行交互?
- Node.js / Socket.io web应用程序完美无缺地在本地运行,但在Heroku上时,浏览器挂起
- MongoLab上的Node.js和MongoDB:每个插入上的“套接字closures”
- Mongolab nodejs拓扑被破坏
- 如何使用MongoLab在Heroku上设置MongoDB数据库?
- 在使用Node.js连接到MongoLab中的mongoDB时出错
- 运行Meteor bundle的Raspberry Pi会抛出调用堆栈exception
- 到Heroku的NodeJS中,MongoDB的MongoDB连接超时