2014-06-29 98 views
0

我有一個meteor.js應用程序+ mongo db (2.6)Meteor.js +外部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那麼我的流星的應用程序無法連接到了蒙戈。它說

Exception in callback of async function: MongoError: auth failed

同樣的錯誤,當我嘗試用RoboMongo連接時,身份驗證是真實的。當auth爲false時,我可以連接RoboMongo。所以這不是關於防火牆或什麼的。

我不明白,我可以做什麼來切換在Mongo授權,以便它可以讓我登錄。請幫忙。

+0

我不知道這是否有關,但截至撰寫本文時我認爲meteor只支持mongo 2.4.9版本(至少這是[changelog](https://github.com/meteor/) meteor/blob/devel/History.md)表示)。我已經看到其他問題,人們已經表明,2.6.x不起作用。 –

回答

1

這取決於你如何啓動Meteor。你需要告訴它要使用的蒙戈實例,並且還提供了正確的憑據是這樣的:

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

這就是我一直在用我的流星的應用程序和專用的MongoDB這樣做的方式,它工作得很好。但是如果RoboMongo無法連接,Mongo配置可能有問題。您可以使用此命令在你的配置啓用身份驗證:

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

我假定你已經將其用於創建流星用戶管理員用戶,你會遇到的問題,如果你開始蒙戈不進行認證,然後加匿名流星用戶,並以auth = true重新啓動。

+0

對,我有那個 'MONGO_URL = mongodb:// meteor:password @ localhost:27017/meteor' 在我的暴發惡魔中。它給了我那個認證錯誤。 而我在mongodb.conf中有'auth = true' – delustra