两天前纠正了。昨天我对heroku进行了一些更改,应用程序崩溃了,我从heroku logs
发现:
/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和亚马逊都尝试了这两个数据库,但都无法进行身份验证。
你以前见过吗?除heroku logs
之外还有什么我可以检查Heroku吗?
感谢。
答案 0 :(得分:4)
今天我在Heroku上遇到了同样的事情:
Mongo::AuthenticationError: Failed to authenticate user 'heroku_app111' on db 'heroku_app111'.
from /home/ad/.rvm/gems/ruby-2.1.3@app/gems/mongo-1.11.1/lib/mongo/functional/authentication.rb:205:in `issue_authentication'
这不是因为this RUBY-890错误,而是因为MongoLab升级到使用SCRAM-SHA-1质询 - 响应用户身份验证机制的MongoDB 3.0。所以我需要最新的ruby 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
当然你必须确保你的凭证没问题:)
答案 1 :(得分:3)
确保使用正确的用户名连接到您的数据库。您用于登录mongolab.com的用户名与附加到“uthenera”数据库的用户名不同。在mongolab.com上查看该数据库的“用户”选项卡,以查看您已配置的数据库用户。
希望有所帮助。如果您需要进一步的帮助,请随时发送电子邮件至support@mongolab.com。
-Robert
答案 2 :(得分:0)
您可以使用以下方式获取数据库用户名和密码:
heroku config | grep MONGODB_URI
响应采用以下格式:
MONGOLAB_URI: mongodb://username:password@mlab.com:12345/db