带有authentication的mongoose造成超时
所以我们有一个有趣的问题。 我们希望在MongoDB层添加authentication,以提高安全性。 但我们没有得到有利的结果。
预安装
- 以root身份使用mongo shell(针对admin表)
- 切换到所需的数据库(applicationdb)
- 执行db.createUser()
-
validation用户已成功创build
{“_id”:“applicationdb.appuser”,“user”:“appuser”,“db”:“applicationdb”,“roles”:[{“role”:“readWrite”,“db”:“applicationdb”}] }
情况1:
- 更改mongodb.conf,auth = true
- 重新启动Mongod服务
-
连接mongoose使用:
mongoose.connect( '的mongodb:// APPUSER:password@xx.xxx.xxx.xxx:27017 / applicationdb');
-
没有收到错误的连接,所以尝试通过Mongoose执行一个GET导致操作超时没有任何错误(至less我可以find)
情景2:
- 更改mongodb.conf,auth = false
- 重新启动Mongod服务
-
连接mongoose使用:
mongoose.connect( '的mongodb://xx.xxx.xxx.xxx:27017 / applicationdb');
-
没有收到连接错误,所以尝试通过Mongoose执行一个GET,它会成功返回文档
为什么我们在MongoDB中使用身份validation时得到这个超时并且从来没有完成请求?
任何帮助将是伟大的,我们在这一个损失!
您需要使用--auth
选项重新启动mongo服务,请参阅此处
如果不起作用,请执行以下操作:尝试使用keepAlive
设置在mongoose中设置服务器选项。 看到这里和这里 。