2015-07-03 200 views
8

我已經設置了兩臺服務器s1和s2。 s1是運行Web服務器的服務器,而s2是運行我的mongodb的服務器。爲了安全性,我在mongo實例上設置了身份驗證。當我嘗試從s1連接到s2上的mongo實例時,在嘗試進行身份驗證時出現錯誤。Mongo身份驗證

如果我使用:

mongo DB --host HOST --port PORT -u USER -p PASSWORD 
--authenticationDatabase DB --authenticationMechanism SCRAM-SHA-1 

我得到這個錯誤:

Error: 2 SASL authentication support not compiled into client library. 
at src/mongo/shell/db.js:228 
exception: login failed 

如果我使用:

mongo DB --host HOST --port PORT -u USER -p PASSWORD 
--authenticationDatabase DB 

我得到這個錯誤:

Error: 18 { ok: 0.0, errmsg: "Challenge-response authentication using 
getnonce and authenticate commands is disabled.", code: 2 } at 
src/mongo/shell/db.js:228 
exception: login failed 

如果我使用:

mongo DB --host HOST --port PORT 

我得到了,但那時我需要爲了做任何事情來使用db.auth,然後我得到這個錯誤:

Error: 18 { ok: 0.0, errmsg: "Challenge-response authentication using 
getnonce and authenticate commands is disabled.", code: 2 } 

我不知道爲什麼我無法進入。有人可以幫助嗎?

+0

你正在使用哪個mongo服務器版本? 3.0.X我假設?然後,默認情況下,SCRAM-SHA-1處於活動狀態,您的客戶端也需要支持。 –

回答

0
  • 您是否試過指定端口和數據庫,然後由主機指定? Try:mongo host:port/bbdd -u XXX -p

  • 您是否啓用了TLS/SSL?

  • 也許Mongo被配置爲只接受來自本地主機的連接?

問候

0

從這個錯誤:

Error: 2 SASL authentication support not compiled into client library. 

這也符合其他錯誤,我認爲你的客戶端庫是不兼容的。比較版本,如果需要升級。