1

我正在使用 playframework -v 1.2.4,并使用 morphia 插件。当我运行 play test 并连接 mongolab db 时,抛出异常并出现以下错误:

Oops: RuntimeException
An unexpected error occured caused by exception RuntimeException:
MongoDB authentication failed: mydb

我的application.conf如下..,

application.mode=dev
%prod.application.mode=prod
morphia.db.host=ds033187.mongolab.com
morphia.db.port=33187
morphia.db.username=demo
morphia.db.password=demo
morphia.db.name=mydb

但上述凭据能够与 mongodb 连接

D:\mongodb-win32-i386-2.0.1\bin>mongo ds033187.mongolab.com:33187/mydb -u demo -p demo
MongoDB shell version: 2.0.1
connecting to: ds033187.mongolab.com:33187/mydb
>

但我得到了与 mongodb shell 的连接。为什么我收到此错误?

4

2 回答 2

1

我假设您正在使用PlayMorphia模块,并快速查看文档,它使用“morphia.db.seeds”而不是“morphia.db.host”。

可能是因为没有指定“种子”,所以 morphia 模块正在连接到本地主机。

于 2012-05-04T07:11:18.730 回答
0

有完全相同的问题。我想你通过添加用户

use admin
db.addUser( "user", "pw" ) 

但是,play morphia 似乎确实针对您正在使用的数据库进行身份验证,而不是针对管理数据库。以下解决了我的问题:

/path/to/mongo
use admin
db.auth( "user", "pw" )
use myDatabase
db.addUser( "user", "pw" ) 

现在它应该工作了:)

于 2012-05-16T20:58:13.407 回答