我有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中的授权,以便让我登录。请帮忙。
答案 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重新启动。