可以通过Mongo shell连接到Heroku中的MongoDB,但不能连接到应用程序

时间:2016-04-18 07:12:10

标签: mongodb scala reactivemongo

我在heroku中设置了一个scala play reactive-mongo应用程序。 Mongo由mlab在heroku中提供。有一个问题通过应用程序连接到mongo,通过shell连接相同的凭据工作正常。我使用scala play 2.5.1和反应0.11.11而mongod是3.0.8。我认为所有这些版本一起工作但我在启动时遇到了身份验证错误:

2016-04-18T06:59:54.357736+00:00 app[web.1]: [info] application - ReactiveMongoApi starting...
2016-04-18T06:59:54.586309+00:00 app[web.1]: [info] application - ReactiveMongoApi successfully configured with DB 'heroku_0pps6l5f'! Servers:
2016-04-18T06:59:54.586332+00:00 app[web.1]:        [ds051635.mlab.com:51635]
2016-04-18T06:59:55.101238+00:00 heroku[router]: at=info method=POST path="XXXXX" host=YYYYYY request_id=ec31a3df-88a1-4dc4-b195-5d39280db41b fwd="90.200.12.189" dyno=web.1 connect=0ms service=2382ms status=200 bytes=137
2016-04-18T06:59:56.010123+00:00 app[web.1]: [error] r.c.a.MongoDBSystem - authentication failure
2016-04-18T06:59:56.010133+00:00 app[web.1]: reactivemongo.core.commands.FailedAuthentication: BSONCommandError['auth failed'] with original doc {
2016-04-18T06:59:56.010134+00:00 app[web.1]:   ok: BSONDouble(0.0),
2016-04-18T06:59:56.010135+00:00 app[web.1]:   errmsg: "auth failed",
2016-04-18T06:59:56.010135+00:00 app[web.1]:   code: BSONInteger(18)
2016-04-18T06:59:56.010136+00:00 app[web.1]: }

在后续插入时,我没有收到错误但实际上没有插入任何内容 在检索时,我收到以下错误:

2016-04-18T07:05:56.742757+00:00 app[web.1]: Caused by: java.lang.RuntimeException: (,List(ValidationError(List('n' is undefined on object: {"ok":0,"errmsg":"not authorized on heroku_0pps6l5f to execute command { count: \"sightings\" }","code":13}),WrappedArray())))

1 个答案:

答案 0 :(得分:4)

默认情况下,ReactiveMongo正在使用MONGODB-CR身份验证,以实现向后兼容(这应该更改为0.12)。

使用新的MongoDB 3.x时,需要SCRAM-SHA1身份验证。因此,请确保option is enable with ReactiveMongoauthMode=scram-sha1(在连接URI中)。

相关问题