请教,Mongodb使用_auth参数启动后,Mongoose应该怎么连接?
发布于 9 年前 作者 winthesky 10644 次浏览 最后一次编辑是 8 年前 来自 问答

大家好,请教下,当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-13 下午8.36.21.png 执行日志:

2015-09-13T20:40:27.510+0800 I ACCESS   [conn1] Successfully authenticated as principal admin on admin

@winthesky 我的意思是,你上面不是连的是root库么,在root库里auth看看

@luoyjx 没有问题,可以正常授权。

晕死,今天突然想起来是不是因为之前使用了express-sessionconnect-mongo这两个包的原因,然后再看app.js 2015-09-14_092834.png 晕死,原来是这里。。。速改为: 2015-09-14_092754.png 瞬间好使,啥也不说了,低级错误,羞辱我吧~!

回到顶部