2012-05-04 4 views
1

J'utilise playframework -v 1.2.4, et en utilisant le plugin morphia. Quand je lance test de jeu, et se connecter avec mongolab db, une exception est levée avec l'erreur suivante:Obtention erreur d'authentification mongodb

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

Mon application.conf comme suit ..,

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 

Mais les pouvoirs ci-dessus sont en mesure se connecter avec 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 
> 

Mais je reçois une connexion avec mongodb shell. Pourquoi je reçois cette erreur?

Répondre

1

Je suppose que vous utilisez le module PlayMorphia, et en prenant un quick look at the documentation, il utilise "morphia.db.seeds" au lieu de "morphia.db.host".

Il se pourrait que, puisque "seed" n'est pas spécifié, le module morphia se connecte à l'hôte local.

+0

Il peut fonctionner avec localhost. Mais le problème est de courir avec "Mongolab". Est-ce que le cadre de jeu prend en charge mongolab –

+0

Le jeu est en dehors de Morphia, qui est en plus du pilote Java Mongo officiel. Je ne vois pas pourquoi mongolab ne serait pas supporté. Le protocole Mongo est plutôt simple, et une fois que la connexion socket est en dehors de votre ordinateur, monogolab ne devrait pas être en mesure de faire la différence entre le client java, ou le client terminal. – Nican

0

avait exactement le même problème. Je suppose que vous avez ajouté cependant l'utilisateur via

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

, jouer morphia ne semble pour authentifier contre le très db que vous utilisez, pas contre le db admin. l'a résolu mon problème suivant:

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

maintenant il devrait fonctionner :)