Meteor.js +外部Mongo。 Meteor无法登录Mongo

时间:2014-06-29 17:06:04

标签: javascript node.js mongodb ubuntu meteor

我有meteor.js个应用+ mongo db (2.6)

我在mongo中创建了一个这样的用户:

use meteor
db.createUser(
  {
    user: "meteor",
    pwd: "password",
    roles:
    [
      {
        role: "userAdmin",
        db: "meteor"
      }
    ]
  }
)

这是我的mongodb.conf

dbpath=/data/db
logpath=/var/log/mongodb/mongodb.log
logappend=true
port = 27017

当我设置auth = true时,我的流星应用程序无法再连接到mongo。它说

Exception in callback of async function: MongoError: auth failed

当auth为true时我尝试连接RoboMongo时出现相同的错误。当auth为false时,我可以与RoboMongo连接。所以这不是防火墙或其他什么。

我不明白,我可以做什么来切换Mongo中的授权,以便让我登录。请帮忙。

1 个答案:

答案 0 :(得分:1)

这取决于你如何启动Meteor。您需要告诉它使用哪个Mongo实例,并提供如下所示的正确凭据:

export MONGO_URL=mongodb://<username>:<password>@<host>:<port>/<db>

这就是我使用Meteor应用程序和专用MongoDB进行的方式,它运行良好。但是如果RoboMongo无法连接,那么Mongo配置可能有问题。您可以使用此命令在配置中启用身份验证:

mongod --auth --config /path/to/mongodb.conf

我假设您已经有一个管理员用户用于创建meteor用户,如果您在未经身份验证的情况下启动Mongo,则会遇到问题,然后匿名添加一个流量用户并使用auth = true重新启动。