带有authentication的mongoose造成超时

所以我们有一个有趣的问题。 我们希望在MongoDB层添加authentication,以提高安全性。 但我们没有得到有利的结果。

预安装

  1. 以root身份使用mongo shell(针对admin表)
  2. 切换到所需的数据库(applicationdb)
  3. 执行db.createUser()
  4. validation用户已成功创build

    {“_id”:“applicationdb.appuser”,“user”:“appuser”,“db”:“applicationdb”,“roles”:[{“role”:“readWrite”,“db”:“applicationdb”}] }

情况1:

  1. 更改mongodb.conf,auth = true
  2. 重新启动Mongod服务
  3. 连接mongoose使用:

    mongoose.connect( '的mongodb:// APPUSER:password@xx.xxx.xxx.xxx:27017 / applicationdb');

  4. 没有收到错误的连接,所以尝试通过Mongoose执行一个GET导致操作超时没有任何错误(至less我可以find)

情景2:

  1. 更改mongodb.conf,auth = false
  2. 重新启动Mongod服务
  3. 连接mongoose使用:

    mongoose.connect( '的mongodb://xx.xxx.xxx.xxx:27017 / applicationdb');

  4. 没有收到连接错误,所以尝试通过Mongoose执行一个GET,它会成功返回文档

为什么我们在MongoDB中使用身份validation时得到这个超时并且从来没有完成请求?

任何帮助将是伟大的,我们在这一个损失!

您需要使用--auth选项重新启动mongo服务,请参阅此处

如果不起作用,请执行以下操作:尝试使用keepAlive设置在mongoose中设置服务器选项。 看到这里和这里 。