我跟着meteor/mongodb: Use different DB for authentication & read/write到了T,并在尝试查询db时收到错误:
Exception while invoking method 'myMethod' MongoError: not authorized for query on myDB.bobRocks
我使用以下方式在Mongo中设置用户:
use admin
db.createUser(
{
user: 'bob',
pwd: '12345',
roles: [
{ role: 'readWrite', db: 'myDB'},
]
}
)
我的数据库电话是:
var myDB = new MongoInternals.RemoteCollectionDriver("mongodb://10.10.10.100:27017/myDB");
BobRocks = new Mongo.Collection('bobRocks', { _driver: myDB })
最后我正在使用:
MONGO_URL=mongodb://bob:12345@10.10.10.100:27017/admin meteor run
我错过了什么?我认为身份验证将遵循MONGO_URL声明,但似乎没有。
答案 0 :(得分:0)
如果你正在使用linux,那么你必须像这样导出像流星一样的mongourl。
export MONGO_URL=mongodb://bob:12345@10.10.10.100:27017/admin meteor run
或者如果您使用的是Windows,那么您必须设置mongourl然后流星跑。
SET MONGO_URL=mongodb://bob:12345@10.10.10.100:27017/admin meteor run
请先尝试使用mongo cli进行连接。
您也没有在此处传递用户名和密码
var myDB = new MongoInternals.RemoteCollectionDriver("mongodb://10.10.10.100:27017/myDB");
您可以在此处传递用户名和密码,就像传递mongo网址一样。
var myDB = new MongoInternals.RemoteCollectionDriver("mongodb://bob:12345@10.10.10.100:27017/myDB");
请确保myDB存在于远程服务器上。