请教,Mongodb使用_auth参数启动后,Mongoose应该怎么连接?
大家好,请教下,当Mongodb使用_auth参数启动后,Mongoose应该怎么连接才行? 看了Mongoose官网文档,尝试了以下连接方法: 1、
mongoose.connect("mongodb://admin:111111@localhost/root");
2、
var options = {
db: { native_parser: true },
server: { poolSize: 5 },
replset: { rs_name: 'myReplicaSetName' },
user: 'admin',
pass: '111111'
}
mongoose.connect("mongodb://localhost/root", options);
这两种方法的执行日志如下:
2015-09-13T09:57:04.990+0800 I ACCESS [conn17] Successfully authenticated as principal admin on root
然后就一直报错:
2015-09-13T09:57:04.995+0800 I ACCESS [conn19] Unauthorized not authorized on root to execute command { listIndexes: "sessions", cursor: {} }
尝试了将Mongodb的用户角色分别更改为:read readWrite dbAdmin userAdmin dbOwner 都报这个错。 在百度后参考这篇帖子后,将连接改为:
var db = mongoose.createConnection();
db.openSet("mongodb://admin:111111@localhost:27017/root");
然并卵 依然报之前的错误!
实在不知道如何解决了,向大家求解! 我的Mongodb版本是3.0.6 Mongoose版本是4.1.5
该问题同时提到了csdn上,悬赏100分,各位如果有兴趣,我把分散了。
5 回复
你先用mongo命令进去,切换到你的那个db,用db.auth(‘name’, ‘password’)看能否校验通过 你的那个admin账号是给admin库配置的么
@luoyjx mongo客户端登录,是可以正确授权的 执行日志:
2015-09-13T20:40:27.510+0800 I ACCESS [conn1] Successfully authenticated as principal admin on admin
@winthesky 我的意思是,你上面不是连的是root库么,在root库里auth看看
@luoyjx 没有问题,可以正常授权。
晕死,今天突然想起来是不是因为之前使用了express-session和connect-mongo这两个包的原因,然后再看app.js 晕死,原来是这里。。。速改为: 瞬间好使,啥也不说了,低级错误,羞辱我吧~!