2011-10-07 56 views
4

兩天前已更正。昨天我犯了一些變化的Heroku和應用程序崩潰,我從heroku logs是發現:Heroku無法驗證mongolab

/app/.bundle/gems/ruby/1.9.1/gems/mongo-1.4.0/lib/mongo/db.rb:137:in `issue_authentication': Failed to authenticate user 'larryzhao' on db 'uthenera' (Mongo::AuthenticationError) 

我甚至明確地輸入主機/端口/用戶名/密碼/ DB名稱爲mongoid.yml,它仍然不能獲得通過認證。

我試過Rackspace和Amazon中的兩個數據庫,但都不能進行身份驗證。

你以前見過嗎?除了heroku logs之外,還有什麼我可以查看Heroku嗎?

謝謝。

回答

3

確保您使用正確的用戶名連接到您的數據庫。您用來登錄到mongolab.com的用戶名與附在'uthenera'數據庫中的用戶名不同。在mongolab.com上查看該數據庫的用戶選項卡,查看您配置的數據庫用戶。

希望有所幫助。如果您需要進一步的幫助,請隨時發送郵件至[email protected]

- 羅伯特

3

今天我遇到了同樣在Heroku:

Mongo::AuthenticationError: Failed to authenticate user 'heroku_app111' on db 'heroku_app111'. 
     from /home/ad/.rvm/gems/[email protected]/gems/mongo-1.11.1/lib/mongo/functional/authentication.rb:205:in `issue_authentication' 

這不是因爲this RUBY-890錯誤,而是因爲MongoLab升級到MongoDB的3.0,它使用SCRAM-SHA-1質詢 - 響應用戶認證機制。所以我需要最新的紅寶石mongo driver版本,這是計數與此。在我的情況下,最新的1.x分支。

支持的最低驅動程序版本SCRAM-SHA-1是:

Driver  Language Version 
C   1.1.0 
C++  1.0.0 
C#   1.10 
Java  2.13 
Node.js 1.4.29 
Perl  0.708.0.0 
PHP  1.6 
Python  2.8 
Motor  0.4 
Ruby  1.12 
Scala  2.8.0 

當然,你必須確保你的credentils都OK了:)

0

可以使用讓您的數據庫用戶名和密碼:

heroku config | grep MONGODB_URI

的響應是在這種格式:

MONGOLAB_URI: mongodb://username:[email protected]:12345/db