34 votes

Problèmes pour exécuter des exemples dans Meteor

Je teste des exemples de Meteor et voici ce que je vois lorsque j'exécute meteor dans des exemples de todos:

 Unexpected mongo exit code 100. Restarting.
Unexpected mongo exit code 100. Restarting.
Unexpected mongo exit code 100. Restarting.
Can't start mongod. Check for other processes listening on port 3002 or other meteors running in the same project.
 

Et c'est ce qui se passe si j'exécute mongod dans la ligne de commande:

 Thu Apr 12 19:27:39 Mongo DB : starting : pid = 2686 port = 27017 dbpath = /data/db/ master = 0 slave = 0  32-bit 

** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
**       see http://blog.mongodb.org/post/137788967/32-bit-limitations for more

Thu Apr 12 19:27:39 db version v1.4.4, pdfile version 4.5
Thu Apr 12 19:27:39 git version: nogitversion
Thu Apr 12 19:27:39 sys info: Linux murphy 2.6.32.14-dsa-ia32 #1 SMP Thu May 27 16:19:20 CEST 2010 i686 BOOST_LIB_VERSION=1_42
Thu Apr 12 19:27:39 waiting for connections on port 27017
Thu Apr 12 19:27:39 listen(): bind() failed errno:98 Address already in use for port: 27017
Thu Apr 12 19:27:39 MiniWebServer: bind() failed port:28017 errno:98 Address already in use
Thu Apr 12 19:27:39   addr already in use
Thu Apr 12 19:27:39 warning: web admin interface failed to initialize on port 28017
 

Quelqu'un aide? Merci!

63voto

Kriss Mikelsons Points 443

J'ai eu le même problème. Fixé avec:

AVERTISSEMENT: cela efface votre base de données locale:

réinitialisation des météores

27voto

jsbeckr Points 618

J'ai eu le même problème. Supprimez simplement .meteor/local/db/mongod.lock dans votre dossier de projet de météore. Et le météore devrait fonctionner normalement.

J'espère que cela a aidé! :)

26voto

Samo Points 3101

Comme l'a mentionné mKriss, essayez

 meteor reset
 

Si vous obtenez cette erreur:

 reset: Meteor is running.

This command does not work while Meteor is running your application.
Exit the running meteor development server.
 

Recherchez ensuite le météore dans vos processus en cours:

 ps -x | grep meteor
 

Cela m'a donné la sortie suivante:

 14877 pts/0    Sl     0:02 /usr/lib/meteor/mongodb/bin/mongod --bind_ip 127.0.0.1 --port 3005 --dbpath /home/sam/proto/.meteor/local/db
15022 pts/0    S+     0:00 grep --color=auto meteor
 

Alors j'ai fait:

 kill -s KILL 14877
meteor reset
meteor
 

Maintenant, tout fonctionne!

19voto

devdave Points 358

Je ne sais pas si cela est pertinent pour votre problème, mais j'ai eu cette erreur et j'ai finalement découvert qu'elle était causée parce que j'avais mon répertoire d'application dans un partage NFS (j'exécute sur Ubuntu dans VirtualBox) que mongodb n'aime pas. Placer mon application dans mon répertoire personnel a plutôt résolu le problème.

11voto

Akshat Points 25702

Il ya quelques façons de contourner cela, la question n'est pas de montrer comment l'utiliser mongod donc je vais courir à travers la façon d'obtenir un peu plus de détails sur l'erreur. meteor reset pourraient travailler, mais pas toujours, & il sera clairement vos applications de données si cela fonctionne.

La question centrale est celle de meteor est très undescriptive quand il s'agit de l'affichage des données, donc je vous conseille d'aller un peu plus en détail sur l'erreur qu'il pourrait littéralement tout mongodb erreur là. Les étapes ci-dessous doivent reproduire l'erreur avec plus de verbosité pour diagnostiquer ce que le problème de base est

Trouver où Meteor installe mongodb

Si vous avez l' mongod outil (téléchargeable à partir de http://mongodb.com), sinon utilisez l'une installée à avec meteor. Juste être prudent, vous n'avez pas trop de nouvelles d'une version des mises à jour de votre ancienne base de données, puis de météores les plus anciens de mongodb ne sera pas en mesure de le comprendre.

généralement (mais pas toujours) à

/usr/local/météore/mongodb/bin/mongod (OS X)

/usr/lib/météore/mongodb/bin/mongod (Red Hat, Debian)

C:\Program Files\Meteor\mongodb\bin\mongod.exe (Windows via Tom Wijsman de port)

Exécutez le Météore de la base de données manuellement avec mongodb

Nous allons donc l'utiliser pour exécuter manuellement mongodb sur vos applications de base de données mongodb:

Dans votre répertoire de projets avec votre terminal app/invite de commandes

cd .meteor
cd local
/usr/local/meteor/mongodb/bin/mongod --dbpath ./

Si votre mongod chemin est quelque chose d'autre l'utiliser à la place, les travaux ci-dessus sur OS X.

Analyser la sortie pour trouver la cause racine du problème

Maintenant, mongodb doit s'exécuter et vous donner une bonne description de ce qu'est le problème, ou d'exécuter en douceur:

Mon Apr  1 23:59:55 [initandlisten] MongoDB starting : pid=84640 port=27017 dbpath=./ 64-bit  host=MacBook-Pro.local
Mon Apr  1 23:59:55 [initandlisten] 
Mon Apr  1 23:59:55 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
Mon Apr  1 23:59:55 [initandlisten] db version v2.2.1, pdfile version 4.5
Mon Apr  1 23:59:55 [initandlisten] git version: d6764bf8dfe0685521b8bc7b98fd1fab8cfeb5ae
Mon Apr  1 23:59:55 [initandlisten] waiting for connections on port 27017

Jetez un oeil à ce que l'erreur pourrait être, et ensuite s'attaquer au problème de l'affiche. Il pourrait être l'un des beaucoup de.

Exemple de question

Si c'est le cas:

exception in initAndListen: 10310 Unable to lock file: ./mongod.lock. Is a mongod instance already running?, terminating

Puis redémarrez votre ordinateur pour tuer des processus susceptibles d'utiliser le fichier et si cela ne fonctionne toujours pas aider à l'utilisation d' meteor reset pour effacer le répertoire .meteor/local/db si votre application utilise une nouvelle base de données.

Les erreurs sont très utiles.e.g espace disque faible (effacer la corbeille ;-) ou ne peut pas écrire sur le disque (problème d'autorisations - de chmod/sudo).

Très obscures questions

Si vous trouvez quelque chose de très embarrassant, il pourrait être une mongodb problème plus d'un météore, ont un coup d'oeil autour pour l'erreur que vous obtenez ici sur stackoverflow et si vous ne trouvez pas qu'il a mis une question et des essaims de gens utiles sont, espérons-le, prêt à aider :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X