首页 文章

获取mongodb身份验证失败错误

提问于
浏览
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的联系 . 为什么我得到这个错误?

2 回答

  • 0

    我假设您正在使用PlayMorphia模块,并采用quick look at the documentation,它使用"morphia.db.seeds"而不是"morphia.db.host" .

    可能是因为没有指定“种子”,因此morphia模块连接到localhost .

  • 1

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

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

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

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

    现在它应该工作:)

相关问题