2 votes

Le serveur Mongod ne fonctionne pas en raison de l'erreur suivante

   sanket@sanket:~$ sudo mongod
sudo: unable to resolve host sanket
[sudo] password for sanket: 
mongod --help for help and startup options
Sun Oct  5 09:58:48.970 [initandlisten] MongoDB starting : pid=2548 port=27017 dbpath=/data/db/ 64-bit host=sanket
Sun Oct  5 09:58:48.970 [initandlisten] db version v2.4.9
Sun Oct  5 09:58:48.970 [initandlisten] git version: nogitversion
Sun Oct  5 09:58:48.970 [initandlisten] build info: Linux orlo 3.2.0-58-generic #88-Ubuntu SMP Tue Dec 3 17:37:58 UTC 2013 x86_64 BOOST_LIB_VERSION=1_54
Sun Oct  5 09:58:48.970 [initandlisten] allocator: tcmalloc
Sun Oct  5 09:58:48.970 [initandlisten] options: {}
Sun Oct  5 09:58:49.101 [initandlisten] journal dir=/data/db/journal
Sun Oct  5 09:58:49.102 [initandlisten] recover : no journal files present, no recovery needed
Sun Oct  5 09:58:49.237 [initandlisten] ERROR: listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:27017
Sun Oct  5 09:58:49.237 [websvr] ERROR: listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:28017
Sun Oct  5 09:58:49.237 [initandlisten] ERROR:   addr already in use
Sun Oct  5 09:58:49.237 [websvr] ERROR:   addr already in use
Sun Oct  5 09:58:49.237 [initandlisten] now exiting
Sun Oct  5 09:58:49.237 dbexit: 
Sun Oct  5 09:58:49.237 [initandlisten] shutdown: going to close listening sockets...
Sun Oct  5 09:58:49.237 [initandlisten] shutdown: going to flush diaglog...
Sun Oct  5 09:58:49.237 [initandlisten] shutdown: going to close sockets...
Sun Oct  5 09:58:49.237 [initandlisten] shutdown: waiting for fs preallocator...
Sun Oct  5 09:58:49.237 [initandlisten] shutdown: lock for final commit...
Sun Oct  5 09:58:49.237 [initandlisten] shutdown: final commit...
Sun Oct  5 09:58:49.328 [initandlisten] shutdown: closing all files...
Sun Oct  5 09:58:49.328 [initandlisten] closeAllFiles() finished
Sun Oct  5 09:58:49.328 [initandlisten] journalCleanup...
Sun Oct  5 09:58:49.328 [initandlisten] removeJournalFiles
Sun Oct  5 09:58:49.390 [initandlisten] shutdown: removing fs lock...
Sun Oct  5 09:58:49.390 dbexit: really exiting now
sanket@sanket:~$

6voto

Gujarat Santana Points 363

Essayez ceci :

ps wuax | grep mongo

Vous devriez voir quelque chose qui ressemble à ceci

Savio           10592   0.5 0.4 2719784 35624   ?? S     7:34pm   0:09.98 mongod 
Savio           10911   0.0 0.0 2423368   184 s000 R+   8:24pm   0:00.00 grep mongo

ou trouver le mot mongod.

et ensuite

sudo kill 10592

après cela, redémarrez mongod. Pour moi, ça marche, pour les erreurs, l'adresse est déjà utilisée.

0voto

Volker Siegel Points 12033

Le serveur semble être démarré en tant que mauvais utilisateur et ne peut pas accéder à ses fichiers de données.

Comment avez-vous commencé ?
L'avez-vous exécuté depuis le Shell en tant que propre utilisateur, ou en tant que service ?

Regardez le propriétaire des répertoires de données - c'est l'utilisateur sous lequel il doit être exécuté.

La commande

ls -ld /data /data/db /data/db/journal

montrerait à l'utilisateur (en utilisant trois répertoires car je ne sais pas lequel sera lisible).


Hmm... donc, /data/db appartient à l'utilisateur mongodb - semble juste.
Mais à l'intérieur, /data/db/journal est détenu par root . C'est faux pour moi.

Essayez un sudo chown -R mongodb:mongodb /data/db/journal , alors /data/db/journal et tous les fichiers qu'il contient appartiennent à l'utilisateur mongodb.

Mais il y a un problème indépendant impliqué, que vous devez régler avant :
sudo ne fonctionne pas et affiche l'erreur sudo: unable to resolve host sanket-PC , ce qui signifie que vous n'avez actuellement pas d'accès root. Voir Message d'erreur lorsque j'exécute sudo : unable to resolve host (none) .


Vous avez fait une modification en remplaçant tout le texte de la question - sans dire ce qui a changé, de sorte que la question a un sens.

En regardant le journal, il y a une erreur intéressante :
La base de données tente de démarrer, et constate que le port réseau qu'elle doit utiliser pour écouter les connexions des clients est déjà utilisé :

Sun Oct  5 09:58:49.237 [initandlisten] ERROR: listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:27017
Sun Oct  5 09:58:49.237 [websvr] ERROR: listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:28017
Sun Oct  5 09:58:49.237 [initandlisten] ERROR:   addr already in use
Sun Oct  5 09:58:49.237 [websvr] ERROR:   addr already in use

Le port est choisi de telle sorte que personne ne l'utilise normalement pour autre chose. mongod qui utilise le port - ce qui signifie qu'il y a déjà une instance en cours d'exécution.
Essayez pgrep -fa mongod pour montrer le fonctionnement mongod processus.

(Indépendamment de cela, il n'est pas clair si le problème original est corrigé. Il ne pouvait pas causer l'erreur originale ici car il n'y avait pas de fichiers de journal).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X