该问题的解决方案工作正常:
而不是做:
$ mongo my_db_name -u superuser -p 1234
我做
$ mongo admin -u superuser -p 1234 # connecting as super user to admin db > use anotherDb
在外壳中。
NodeJS中的解决方案是什么?
我尝试连接,mongodb://superuser:1234@localhost:27017/my_db_name
但出现此错误:
{ [MongoError: auth fails] name: 'MongoError', code: 18, ok: 0, errmsg: 'auth fails' }
我的代码是:
var Db = require('mongodb').Db, MongoClient = require('mongodb').MongoClient; MongoClient.connect("mongodb://superuser:1234@localhost:27017/my_db_name", function(err, db) { if (err) { return console.log(err); } console.log("Successfully connected."); } );
请注意,超级用户是可以在任何数据库中写入和读取权限的全能用户。
如果我这样做MongoClient.connect("mongodb://superuser:1234@localhost:27017/admin
(替换my_db_name
为admin
),则说明连接成功。为什么?
如何连接my_db_name
使用superuser
和密码(1234
)?