簡體   English   中英

如何使用具有憑據的紅寶石連接到mongo?

[英]How to connect to mongo, using ruby that have credentials?

我正在嘗試連接到具有憑據的數據庫。 我在網上找不到任何有用的信息...

require: 'mongo'

begin
   db = Mongo::Connection.new(" IP ADDRESS " , PORT ).db("COLLECTION")
   db.authenticate("username","password")


rescue StandardError => err
    abort("error")
end

C:/Ruby193/lib/ruby/gems/1.9.1/gems/mongo-1.8.2/lib/mongo/networking.rb:306:在receive_message_on_socket中的'rescue'中:操作失敗,但以下異常:文件結尾已達到(Mongo :: ConnectionFailure)

貌似有一個#add_auth方法以及auths可以傳遞給構造也許嘗試

auths = [{"db_name" => "COLLECTION", 
          "username" => YOUR_USERNAME, 
          "password" => YOUR_PASSWORD}]
Mongo::Connection.new(" IP ADDRESS " , PORT, auths: auths)

要么

auth = {"db_name" => "COLLECTION", 
          "username" => YOUR_USERNAME, 
          "password" => YOUR_PASSWORD}
Mongo::Connection.new(" IP ADDRESS " , PORT).add_auth(auth)

看看是否可行

參考Mongo :: MongoClient :: GENERIC_OPTSMongo :: MongoClient#setup

順便說一句,這是寶石和紅寶石的舊版本。 您是否考慮過可能的升級?

Mongo的最新版本(到目前為止)是2.4.3,並且選項現在更加透明,例如

Mongo::Client.new("IP_ADDRESS:PORT", user: USERNAME, password: PASSWORD, auth_mech: AUTHENTICATION_MECHANISM)

盡管根據您的評論,我不確定身份驗證是否是您的問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM