Heroku无法验证mongolab

时间:2011-10-07 20:02:17

标签: mongodb heroku mlab

两天前纠正了。昨天我对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吗?

感谢。

3 个答案:

答案 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