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

Javascript Meteor.js+;外部Mongo。Meteor无法登录Mongo,javascript,node.js,mongodb,ubuntu,meteor,Javascript,Node.js,Mongodb,Ubuntu,Meteor,我有一个meteor.jsapp+mongodb(2.6) 我在mongo中创建了如下用户: use meteor db.createUser( { user: "meteor", pwd: "password", roles: [ { role: "userAdmin", db: "meteor" } ] } ) export MONGO_URL=mongodb://<usernam

我有一个
meteor.js
app+
mongodb(2.6)

我在mongo中创建了如下用户:

use meteor
db.createUser(
  {
    user: "meteor",
    pwd: "password",
    roles:
    [
      {
        role: "userAdmin",
        db: "meteor"
      }
    ]
  }
)
export MONGO_URL=mongodb://<username>:<password>@<host>:<port>/<db>
这是我的
mongodb.conf

dbpath=/data/db
logpath=/var/log/mongodb/mongodb.log
logappend=true
port = 27017
当我设置
auth=true
时,我的meteor应用程序无法再连接到mongo。上面说

异步函数回调异常:MongoError:auth失败

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


我不明白,我能做些什么来打开Mongo中的授权,这样它就可以让我登录了。请帮忙。

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

use meteor
db.createUser(
  {
    user: "meteor",
    pwd: "password",
    roles:
    [
      {
        role: "userAdmin",
        db: "meteor"
      }
    ]
  }
)
export MONGO_URL=mongodb://<username>:<password>@<host>:<port>/<db>

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

我不知道这是否相关,但在撰写本文时,我认为meteor只支持Mongo 2.4.9版(至少这表明了这一点)。我还看到过其他问题,有人指出2.6.x无法工作。对,我有
MONGO_URL=mongodb://meteor:password@localhost:27017/meteor
在我的upstart demon中。它给了我那个身份验证错误。我在mongodb.conf中有
auth=true