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:~$
Réponses
Trop de publicités?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.
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).