Ceci est ma première tentative de consommer MongoDB. J'ai Mongo en cours d'exécution:
ps -ef | grep [m]ongo
mongodb 11023 1 0 Jun24 ? 00:00:03 /usr/lib/mongodb/mongod --config /etc/mongodb.conf
Et l'erreur vient du fait de faire
Datastore.save( stuff ); // (pseudo code)
L'erreur:
Jun 27, 2011 3:20:29 PM com.mongodb.DBTCPConnector fetchMaxBsonObjectSize WARNING: Exception determining maxBSON size using0 Java.io.IOException: couldn't connect to [russ-Elite-book/127.0.1.1:27017] bc:Java.net.ConnectException: Connection refused at com.mongodb.DBPort._open(DBPort.Java:206) at com.mongodb.DBPort.go(DBPort.Java:94) at com.mongodb.DBPort.go(DBPort.Java:75) at com.mongodb.DBPort.findOne(DBPort.Java:129) at com.mongodb.DBPort.runCommand(DBPort.Java:138) ...
Notez que j'utilise 127.0.0.1:27017 pour ma connexion, qui fonctionne avec le shell Mongo. De plus, je reçois la page d'administration dans le navigateur en utilisanthttp://localhost:28017
.
Merci beaucoup pour toutes les idées!
(Je pense que c'est un peu mauvais de répondre à sa propre question, mais en fait, la réponse s'avère être l'une de celles suggérées. Néanmoins, mes remerciements les plus fous à tous. Quand on répond à une question, il faut pouvoir assumer il est basé sur un logiciel correctement installé et fonctionnel. Je ne l’avais pas.)
J'ai installé MongoDB à l'aide du logiciel Ubuntu Software Center. Cela fonctionnait à partir de Shell et du navigateur, comme indiqué ailleurs dans cette question. Cependant, cela ne fonctionnait pas avec Java (ni avec Django non plus).
Le problème, malgré ce qu’il était dit dans la trace de la pile Java, était tout simplement "connexion refusée".
La solution consiste à l'installer à partir des sources Mongo appropriées et à ne pas faire confiance au référentiel Ubuntu.
(Oui, cela arrive aussi fréquemment à d'autres produits obtenus à partir de là, comme Eclipse, mais vous savez que c'est un service tellement agréable que vous voulez lui faire confiance.)
Si vous voulez savoir comment j'ai installé ce qui a ensuite fonctionné, consultez http://www.javahotchocolate.com/tutorials/mongodb.html .
J'ai rencontré le même problème parce que j'ai amélioré mon mongo en utilisant de la bière. Pour résoudre ce problème. Recherchez le fichier conf (qui peut ne pas être situé dans le répertoire bin où vous démarrez votre mongodb)
/usr/local/Cellar/mongodb-2.2.w Whatever/mongod.conf et commentez la propriété "bind_ip".
Il est fort probable que le pilote Java ne puisse pas se connecter à l'adresse spécifiée . Assurez-vous de pouvoir vous connecter à cette adresse 127.0.1.1:27017
à l'aide du shell et exécutez "db.isMaster()
" . Il s'agit peut-être d'un problème de 127.0.1.1
contre 127.0.0.1
.
J'ai eu le même problème, mais ma solution était différente. J'utilisais "localhost" comme nom d'hôte et je le changeai en "127.0.0.1" pour le corriger.
J'ai rencontré le même problème parce que j'ai installé mon mongo avec apt-get. Voici comment y remédier:
Il s’avère que c’est un problème lié au pilote Java MongDB }.
Il y a deux solutions:
bind_ip = 127.0.0.1
ou bind_ip = localhost
, mettez-le en commentaire.Comme je l'ai montré dans mon commentaire à { la réponse de Russ Bateman } _, cela semblait être un problème avec le paquet Ubuntu. La vraie raison est que le fichier de configuration qui l'accompagne définit une valeur pour bind_ip
...
Il est difficile de dire sans voir le contenu de votre fichier .conf. Une chose que je recommanderais consiste à exécuter le shell mongo et à voir si vous pouvez vous connecter, interroger et écrire à partir de celui-ci. Cela aidera à isoler le serveur par rapport à un problème de client Java. En outre, cela peut vous donner une forme différente de l'erreur qui peut être un indice.
Configurez-vous --port dans votre fichier .conf?
Il semble qu'il s'agisse d'un problème de sécurité ou d'une URL non valide. Si vous avez utilisé la configuration par défaut, vous devriez pouvoir accéder à http: // yourmachine: 28017 . Voyez si vous pouvez accéder à la page d'administration à partir de cette URL. Si vous pouvez accéder à l'URL de l'administrateur, remplacez simplement le numéro de port par 27017 dans votre application. Ça devrait marcher.
Pour moi, c'était une solution complètement différente. J'utilise Spring MVC Framework et tout ce que je devais faire, c'était de confirmer que les fichiers XML de configuration disaient la même chose dans le dossier/target ainsi que dans les dossiers non cibles. Une fois que cela a été ajusté, tout a fonctionné. Le problème était que tout fonctionnait lorsqu'il était exécuté à partir d'un STS, mais lors de son déploiement, j'avais l'erreur mentionnée.