我有一个 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
时,我的 meteor 应用程序无法再连接到mongo。它说
异步函数回调异常:MongoError: auth failed
当身份验证为 true 时,当我尝试连接 RoboMongo 时,出现同样的错误。当身份验证为 false 时,我可以与 RoboMongo 连接。所以这与防火墙或其他什么无关。
我不明白,我可以做什么来打开 Mongo 中的授权,以便它可以让我登录。请帮忙。
最佳答案
这取决于您如何启动 Meteor。您需要告诉它要使用哪个 Mongo 实例,并提供正确的凭据,如下所示:
export MONGO_URL=mongodb://<username>:<password>@<host>:<port>/<db>
这就是我使用 Meteor 应用程序和专用 MongoDB 所做的事情,效果很好。但如果 RoboMongo 无法连接,则可能是 Mongo 配置有问题。您可以使用此命令在配置中启用身份验证:
mongod --auth --config /path/to/mongodb.conf
我假设您已经有一个管理员用户用于创建meteor用户,如果您在没有身份验证的情况下启动Mongo,然后匿名添加meteor用户并使用auth=true重新启动,您将会遇到问题。
关于javascript - Meteor.js + 外部 Mongo。 Meteor 无法登录 Mongo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24478330/