4

前两天已经更正了。昨天我对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)

我什至将主机/端口/用户名/密码/数据库名称显式输入到 mongoid.yml 中,仍然无法通过身份验证。

我在 Rackspace 和 Amazon 中都尝试了这两个数据库,但都无法进行身份验证。

你以前遇到过吗?除了Heroku,我还有什么可以检查的heroku logs吗?

谢谢。

4

3 回答 3

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'

不是因为这个 RUBY-890错误,而是因为 MongoLab 升级到使用SCRAM-SHA-1质询-响应用户身份验证机制的 MongoDB 3.0。所以我需要最新的 ruby​​ mongo 驱动程序版本。就我而言,最新的 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

当然,你必须确保你的信用是好的 :)

于 2015-10-02T18:09:28.297 回答
3

确保您使用正确的用户名连接到您的数据库。您用于登录 mongolab.com 的用户名与附加到“uthenera”数据库的用户名不同。在 mongolab.com 上查看该数据库的“用户”选项卡,了解您配置了哪些数据库用户。

希望有帮助。如果您需要进一步的帮助,请随时发送电子邮件至 support@mongolab.com。

-罗伯特

于 2011-10-07T20:24:18.400 回答
0

您可以使用以下方法获取数据库用户名和密码:

heroku config | grep MONGODB_URI

响应格式如下:

MONGOLAB_URI: mongodb://username:password@mlab.com:12345/db

于 2016-12-02T10:38:50.283 回答