Comment l'avez-vous installé? Avez-vous utilisé une aptitude? Avez-vous téléchargé le tarbal directement?
Bryan Migliorisi
1
J'ai eu cette erreur et c'était parce que sur ubuntu je n'ai pas couru en mongodpremier
Connor Leech
Réponses:
124
Supprimez manuellement le fichier de verrouillage: sudo rm /var/lib/mongodb/mongod.lock
Exécutez le script de réparation: sudo -u mongodb mongod -f /etc/mongodb.conf --repair
Veuillez noter ce qui suit:
Vous devez exécuter cette commande en tant qu'utilisateur mongodb. Si vous l'exécutez en tant que root, alors root possédera les fichiers dans / var / lib / mongodb / qui sont nécessaires pour exécuter le démon mongodb et donc lorsque le démon essaiera de s'exécuter plus tard en tant qu'utilisateur mongodb, il n'aura pas l'autorisation de démarrer . Dans ce cas, vous obtiendrez cette erreur: Impossible de créer / ouvrir le fichier de verrouillage pour lockfilepath: /var/lib/mongodb/mongod.lock errno: 13 Autorisation refusée, se terminant.
Sur Ubuntu, vous devez spécifier le fichier de configuration /etc/mongodb.conf à l'aide de l'indicateur -f. Sinon, il recherchera les fichiers de données au mauvais endroit et vous verrez l'erreur suivante: dbpath (/ data / db /) n'existe pas, se terminant.
comment exécuter cela en tant qu'utilisateur mongodb?
user4951
Ajoutez-vous simplement au groupe mongodb: useradd -G mongodb fady remplacez fady par votre nom d'utilisateur.
fady mohamed osman
2
J'ai dû utiliser à la fois les informations de cette réponse et celles de @boulder_ruby. Ceci parce que mon '/ data / db /' était manquant. Peut-être que cela pourrait être une bonne mise à jour pour que cette réponse soit plus complète.
Si j'essaye `sudo -u mongodb mongod -f /etc/mongodb.conf --repair` voici ce que j'obtiens:Mon Aug 22 11:28:17.919 Can't specify both --journal and --repair options.
Aleksandrus
21
Essayer d'exécuter $ mongod
Si vous obtenez une erreur telle que
MongoDB shell version:2.0.5
connecting to: test
FriJun111:20:33Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84
exception: connect failed
hisham-agil:~ hisham$ mongod
mongod --help for help and startup options
FriJun111:24:47[initandlisten]MongoDB starting : pid=53452 port=27017 dbpath=/data/db/64-bit host=hisham-agil.local
FriJun111:24:47[initandlisten] db version v2.0.5, pdfile version 4.5FriJun111:24:47[initandlisten] git version: nogitversion
FriJun111:24:47[initandlisten] build info:Darwin gamma.local 11.3.0DarwinKernelVersion11.3.0:ThuJan1218:48:32 PST 2012; root:xnu-1699.24.23~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_49FriJun111:24:47[initandlisten] options:{}FriJun111:24:47[initandlisten] exception in initAndListen:10296 dbpath (/data/db/) does not exist, terminating
FriJun111:24:47 dbexit:FriJun111:24:47[initandlisten] shutdown: going to close listening sockets...FriJun111:24:47[initandlisten] shutdown: going to flush diaglog...FriJun111:24:47[initandlisten] shutdown: going to close sockets...FriJun111:24:47[initandlisten] shutdown: waiting for fs preallocator...FriJun111:24:47[initandlisten] shutdown: lock for final commit...FriJun111:24:47[initandlisten] shutdown: final commit...FriJun111:24:47[initandlisten] shutdown: closing all files...FriJun111:24:47[initandlisten] closeAllFiles() finished
FriJun111:24:47 dbexit: really exiting now
Ensuite, vous avez rencontré une erreur de démarrage de base qui est assez courante.
Par défaut, mongod essaiera d'utiliser / data / db pour ses fichiers de base de données, qui dans ce cas, n'existe pas.
Tu ne peux pas commencer
mongo
jusqu'à ce que tu gères
mongod.
Essayez de créer ces répertoires et assurez-vous qu'ils sont accessibles en écriture par le même utilisateur qui exécute le processus mongod.
vous pouvez également définir le dbpath comme suit: mongod --dbpath ../data
cbaigorri
20
Ce n'est en fait pas une erreur ... Ce qui se passe ici, c'est que Mongo s'appuie sur un démon pour exécuter le serveur de base de données local, donc pour "lancer" le serveur mongo dans votre shell, vous devez démarrer le service mongo première.
Pour Fedora Linux (qui est la Distro que j'utilise), vous devez exécuter ces commandes:
1 sudo service mongod start
2 mongo
Et voila! le serveur va fonctionner. Maintenant, si vous voulez que le service Mongo démarre au démarrage du système, vous devez exécuter:
sudo chkconfig --levels 235 mongod on
Et c'est tout! Si vous faites cela, maintenant dans le shell, il vous suffit de taper mongo pour démarrer le serveur mais c'est à peu près tout, le problème est que vous devez d'abord démarrer le SERVICE, puis le SERVER :)
PS Les commandes que j'ai postées peuvent également fonctionner sur d'autres distributions Linux, pas seulement dans fedora ... Au cas où non, vous devrez peut-être modifier quelques mots en fonction de la distribution que vous utilisez;)
Cette méthode supprimera-t-elle les bases de données existantes dans mongo?
Evan
6
Vous devez supprimer le fichier de verrouillage mongod.lockou /var/lib/mongodb/mongod.locksur ubuntu, puis vous devez d'abord exécuter mongod.exeou service mongodb startsur ubuntu, puis exécuter mongo.exeou mongosur ubuntu.
L'OP est sur Ubuntu, donc je suis presque sûr qu'ils n'utiliseront aucun .exefichier.
me_and
J'obtiens ce message d'erreur et je ne trouve pas de "mongod.lock" sur mon système de fichiers. Ces instructions s'appliquent-elles à Mac OSX?
boulder_ruby
5
Soit votre mongod ne fonctionne pas (vérifiez à l'aide de la commande "ps"), soit il écoute sur une adresse IP extérieure et non sur localhost. Vérifiez d'abord la liste des processus si «mongod» est en cours d'exécution. Si oui, vérifiez avec "netstat -nap" le port associé.
Bien sûr, vous pouvez démarrer manuellement mongod sur la console ou même consulter le fichier journal de mongod (s'il y en a un configuré ... selon la façon dont vous avez installé mongod).
Vous devez d'abord vous assurer que tous les fichiers et répertoires de votre dossier / var / lib / mongodb / (ou du dossier vers lequel pointe dbpath) appartiennent à l'utilisateur mongodb et au groupe mongodb.
Comment se fait-il qu'il n'y ait pas de votes positifs à ce sujet? C'était la seule solution, parmi une demi-douzaine d'entrées SO que j'ai recherchées, qui a fonctionné pour moi. Merci Monsieur.
FRD
La commande pour démarrer avec le fichier de configuration et forcer une réparation est sudo -u mongodb mongod -f /etc/mongod.conf --repairsur Ubuntu 14.
okoboko
5
Commencez par démarrer votre serveur mongo en
Users-MacBook-Pro:csv1 Admin$ mongod
all output going to:/usr/local/var/log/mongodb/mongo.log
Ensuite, ouvrez une autre fenêtre de terminal et ouvrez le shell
Vérifiez également que votre partition racine dispose de suffisamment d'espace pour démarrer mongod.
df -h /
Vous verrez un peu comme ça lors du lancement de mongod:
MonAug1217:02:59.159[initandlisten] recover : no journal files present, no recovery needed
MonAug1217:02:59.159[initandlisten]MonAug1217:02:59.159[initandlisten] ERROR:Insufficient free space for journal files
MonAug1217:02:59.159[initandlisten]Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles
MonAug1217:02:59.159[initandlisten]MonAug1217:02:59.159[initandlisten] exception in initAndListen:15926Insufficient free space for journals, terminating
MonAug1217:02:59.159 dbexit:MonAug1217:02:59.159[initandlisten] shutdown: going to close listening sockets...
Maintenant, essayez de vérifier la version Mongo, si vous suivez, alors vous êtes sur la bonne voie!
$ mongo --version
MongoDB shell version:2.4.6
Nous devons maintenant créer le répertoire de la base de données. J'ai utilisé l'emplacement par défaut '/ data / db' suggéré dans la documentation MongoDB. J'ai également créé un répertoire de journaux pour éviter tout problème d'autorisation pendant que Mongo essaie de créer des journaux. Changez de propriétaire et cela fera l'affaire.
Maintenant, nous allons créer un fichier de configuration par défaut pour MongoDB à fournir pour la première fois que nous exécutons la commande 'mongod'. Maintenant, j'aimerais également souligner que «mongod» lancera un service, qui écoutera les connexions de données entrantes. C'est similaire à l'exécution de '$ service mysqld start'. Allons-y et créons le fichier de configuration. Veuillez garder à l'esprit que j'ai créé un fichier de configuration très basique. Cependant, vous pouvez ajouter de nombreuses autres variables pour configurer MongoDB. C'est la première fois que je joue avec MongoDB, donc je sais tout ce que j'ai lu sur la documentation MongoDB! J'ai créé «mongodb.conf».
Veuillez noter que le port par défaut pour le serveur MongoDB est 27017. Utilisez votre propre chemin pour dbpath et logpath que vous avez créés à l'étape 5. N'oubliez pas de fermer et d'enregistrer le fichier de configuration.
Nous sommes maintenant tous prêts à démarrer notre service MongoDB. Ouvrez deux instances de Terminal.Dans le Terminal 1, tapez:
$ sudo mongod -f /etc/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process:3516
all output going to:/data/log/mongod.log
child process started successfully, parent exiting
Si vous recevez le message ci-dessus, sachez que vous avez démarré avec succès votre service Mongod.
Maintenant, pour vous y connecter, dans le terminal 2 tapez suivant:
$mongo test
MongoDB shell version:2.4.6
connecting to: test
Server has startup warnings:TueSep316:55:43.527[initandlisten]TueSep316:55:43.527[initandlisten]** WARNING: soft rlimits too low.Numberof files is 256, should be at least 1000>
Ignorez les avertissements, mais vous êtes connecté avec succès à la base de données «test»! Cool!
C'est tout. J'ai appliqué cette solution, lorsque j'ai essayé d'installer une copie de MongoDB sur mon Mac pour la première fois. Voyez si cela vous aide aussi.
Bien que ce lien puisse répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et de fournir le lien pour référence. Les réponses aux liens uniquement peuvent devenir invalides si la page liée change.
Radim Köhler
@ RadimKöhler, merci pour la mise en garde. J'ai corrigé la réponse. J'espère que cela aidera quelqu'un. À votre santé.
Chinmay
1
J'ai résolu ce problème sur ubuntu 12.04 en suivant les étapes:
1) sudo rm / var / log / mongodb
2) sudo rm / var / lib / mongodb
3) J'ai supprimé mongo puis je l'ai réinstallé
4) sudo service mongodb restart
mongod
premierRéponses:
sudo rm /var/lib/mongodb/mongod.lock
sudo -u mongodb mongod -f /etc/mongodb.conf --repair
Veuillez noter ce qui suit:
la source
Voici tout, parfois, il faut un peu de temps pour démarrer mongo après avoir effectué ces opérations.
la source
Mon Aug 22 11:28:17.919 Can't specify both --journal and --repair options.
Essayer d'exécuter $ mongod
Si vous obtenez une erreur telle que
Ensuite, vous avez rencontré une erreur de démarrage de base qui est assez courante.
Par défaut, mongod essaiera d'utiliser / data / db pour ses fichiers de base de données, qui dans ce cas, n'existe pas.
Tu ne peux pas commencer
jusqu'à ce que tu gères
Essayez de créer ces répertoires et assurez-vous qu'ils sont accessibles en écriture par le même utilisateur qui exécute le processus mongod.
** Voir une question similaire - Obtention d'une erreur, "Erreur: impossible de se connecter au serveur 127.0.0.1 shell / mongo.js" et en essayant d'exécuter mongodb sur mac osx lion
la source
Ce n'est en fait pas une erreur ... Ce qui se passe ici, c'est que Mongo s'appuie sur un démon pour exécuter le serveur de base de données local, donc pour "lancer" le serveur mongo dans votre shell, vous devez démarrer le service mongo première.
Pour Fedora Linux (qui est la Distro que j'utilise), vous devez exécuter ces commandes:
Et voila! le serveur va fonctionner. Maintenant, si vous voulez que le service Mongo démarre au démarrage du système, vous devez exécuter:
Et c'est tout! Si vous faites cela, maintenant dans le shell, il vous suffit de taper mongo pour démarrer le serveur mais c'est à peu près tout, le problème est que vous devez d'abord démarrer le SERVICE, puis le SERVER :)
PS Les commandes que j'ai postées peuvent également fonctionner sur d'autres distributions Linux, pas seulement dans fedora ... Au cas où non, vous devrez peut-être modifier quelques mots en fonction de la distribution que vous utilisez;)
la source
sudo service mongodb start
J'ai eu le même problème lorsque j'ai essayé d'installer mongo. J'ai eu une erreur comme,
Erreur
Solution:
Installez d'abord mongod en utilisant:
Puis tapez
ensuite
ensuite
Merci
la source
Vous devez supprimer le fichier de verrouillage
mongod.lock
ou/var/lib/mongodb/mongod.lock
sur ubuntu, puis vous devez d'abord exécutermongod.exe
ouservice mongodb start
sur ubuntu, puis exécutermongo.exe
oumongo
sur ubuntu.la source
.exe
fichier.Soit votre mongod ne fonctionne pas (vérifiez à l'aide de la commande "ps"), soit il écoute sur une adresse IP extérieure et non sur localhost. Vérifiez d'abord la liste des processus si «mongod» est en cours d'exécution. Si oui, vérifiez avec "netstat -nap" le port associé.
Bien sûr, vous pouvez démarrer manuellement mongod sur la console ou même consulter le fichier journal de mongod (s'il y en a un configuré ... selon la façon dont vous avez installé mongod).
la source
Vous devez d'abord vous assurer que tous les fichiers et répertoires de votre dossier / var / lib / mongodb / (ou du dossier vers lequel pointe dbpath) appartiennent à l'utilisateur mongodb et au groupe mongodb.
(Remplacez le nom de fichier et le répertoire par leurs noms respectifs)
Ensuite, vous pouvez supprimer le verrou, réparer la base de données et redémarrer le démon comme d'autres personnes l'ont déjà mentionné:
la source
sudo -u mongodb mongod -f /etc/mongod.conf --repair
sur Ubuntu 14.Commencez par démarrer votre serveur mongo en
Ensuite, ouvrez une autre fenêtre de terminal et ouvrez le shell
la source
Vérifiez également que votre partition racine dispose de suffisamment d'espace pour démarrer mongod.
Vous verrez un peu comme ça lors du lancement de mongod:
la source
Sur Ubuntu, essayez ceci:
la source
Il peut s'agir d'une combinaison de $ PATH et d'un problème d'autorisation.
Essayez de suivre les étapes ci-dessous:
Mettez à jour votre variable $ PATH pour qu'elle pointe vers votre fichier bin MongoDB. Dans mon cas, installez MongoDB dans ce dossier:
Afin de mettre à jour votre variable $ PATH, procédez comme suit:
Ensuite, appuyez sur «i» pour insérer du texte dans Vi et ajoutez le chemin de votre MongoDB à la fin du fichier «chemins» et redémarrez le terminal.
Utilisez 'Esc: w q' pour enregistrer et quitter l'éditeur Vi.
Utilisez echo pour afficher votre variable de chemin:
Maintenant, essayez de vérifier la version Mongo, si vous suivez, alors vous êtes sur la bonne voie!
Nous devons maintenant créer le répertoire de la base de données. J'ai utilisé l'emplacement par défaut '/ data / db' suggéré dans la documentation MongoDB. J'ai également créé un répertoire de journaux pour éviter tout problème d'autorisation pendant que Mongo essaie de créer des journaux. Changez de propriétaire et cela fera l'affaire.
Maintenant, nous allons créer un fichier de configuration par défaut pour MongoDB à fournir pour la première fois que nous exécutons la commande 'mongod'. Maintenant, j'aimerais également souligner que «mongod» lancera un service, qui écoutera les connexions de données entrantes. C'est similaire à l'exécution de '$ service mysqld start'. Allons-y et créons le fichier de configuration. Veuillez garder à l'esprit que j'ai créé un fichier de configuration très basique. Cependant, vous pouvez ajouter de nombreuses autres variables pour configurer MongoDB. C'est la première fois que je joue avec MongoDB, donc je sais tout ce que j'ai lu sur la documentation MongoDB! J'ai créé «mongodb.conf».
Ajouter suivant:
Veuillez noter que le port par défaut pour le serveur MongoDB est 27017. Utilisez votre propre chemin pour dbpath et logpath que vous avez créés à l'étape 5. N'oubliez pas de fermer et d'enregistrer le fichier de configuration.
Nous sommes maintenant tous prêts à démarrer notre service MongoDB. Ouvrez deux instances de Terminal.Dans le Terminal 1, tapez:
Si vous recevez le message ci-dessus, sachez que vous avez démarré avec succès votre service Mongod.
Maintenant, pour vous y connecter, dans le terminal 2 tapez suivant:
Ignorez les avertissements, mais vous êtes connecté avec succès à la base de données «test»! Cool!
C'est tout. J'ai appliqué cette solution, lorsque j'ai essayé d'installer une copie de MongoDB sur mon Mac pour la première fois. Voyez si cela vous aide aussi.
Pour un article détaillé, vous pouvez aller ici - http://arcanebytes.com/2013/09/03/mongodb-installation-on-mac-os-x/#comment-1036112094 .
J'espère que ça aide!
A bientôt, Chinmay
la source
J'ai résolu ce problème sur ubuntu 12.04 en suivant les étapes:
1) sudo rm / var / log / mongodb
2) sudo rm / var / lib / mongodb
3) J'ai supprimé mongo puis je l'ai réinstallé
4) sudo service mongodb restart
et tout va bien
la source