[英]Nodejs mongoClient.connect fails due to username/password setup in mongo
When i try to connect like this it fails when i use database as eventsstore
当我尝试连接这样的时候,当我使用数据库作为eventsstore时,它会失败
mongoClient.connect mongoClient.connect
MongoClient.connect('mongodb://tom:pass@localhost:27017/eventsstore',function(err,db){ if(err){ console.log('NOT CONNECTED') } console.log('CONNECTED') var collection = db.collection('events').insert({mydata:123}, function(err, res){}) })
Note : Also database eventsstore is created by admin login 注意 :数据库事件存储也是由admin登录创建的
It Passes/connects successfully when i use database as admin
当我使用数据库作为管理员时,它成功通过/连接
MongoClient.connect('mongodb://tom:pass@localhost:27017/admin',function(err,db){ if(err){ console.log('NOT CONNECTED') } console.log('CONNECTED') var collection = db.collection('events').insert({mydata:123}, function(err, res){}) })
this is how my mongo user tom SUPERUSER permission look in mongo
这是我的mongo用户tom SUPERUSER权限在mongo中的样子
db.getUser('tom')
[ { "role" : "readWrite", "db" : "admin" }, { "role" : "userAdmin", "db" : "admin" }, { "role" : "dbOwner", "db" : "admin" }, { "role" : "dbAdminAnyDatabase", "db" : "admin" }, { "role" : "userAdminAnyDatabase", "db" : "admin" }, { "role" : "clusterAdmin", "db" : "admin" }, { "role" : "readWriteAnyDatabase", "db" : "admin" } ]
You need to provide authentication db 您需要提供身份验证db
var opts = {db: {authSource: 'admin'}} var opts = {db:{authSource:'admin'}}
mongo.connect('mongodb://tom:pass@localhost:27017/admin', opts, function(err, db) { mongo.connect('mongodb:// tom:pass @ localhost:27017 / admin',opts,function(err,db){
} }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.