O servidor do Mongod não está funcionando devido ao seguinte erro

2
   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:~$ 
    
por Sanket Shirode 01.10.2014 / 13:00

2 respostas

6

Tente isto:

ps wuax | grep mongo

Você deve ver algo parecido com isso |

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 encontre a palavra mongod.

e depois

sudo kill 10592

depois disso comece novamente. para mim o seu trabalho, para uso incorreto de erros.

    
por Gujarat Santana 21.01.2015 / 12:52
0

O servidor parece ser iniciado como o usuário incorreto e não pode acessar seus arquivos de dados.

Como você começou?
Você o executou a partir do shell como seu próprio usuário ou como um serviço?

Dê uma olhada no proprietário dos diretórios de dados - esse é o usuário que precisa executar como.

O comando

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

mostraria o usuário (usando três diretórios porque eu não sei qual será legível).

Hmm ... então, /data/db é de propriedade de useer mongodb - parece correto.
Mas dentro dela, /data/db/journal é de propriedade de root . Parece errado para mim.

Experimente um sudo chown -R mongodb:mongodb /data/db/journal , então /data/db/journal com todos os arquivos contidos nele pertence ao usuário mongodb.

Mas há um problema independente envolvido, que você precisa corrigir antes: sudo não funciona e mostra o erro sudo: unable to resolve host sanket-PC , o que significa que você atualmente não tem acesso root. Veja Mensagem de erro quando eu executo o sudo: incapaz de resolver host (nenhum) .

Você fez uma edição substituindo todo o texto da pergunta - sem dizer o que mudou, então a pergunta faz sentido.

Olhando para o log, há um erro interessante:
O banco de dados tenta iniciar e descobre que a porta de rede usada para liberar conexões do cliente já está em uso:

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

A porta é escolhida de tal forma que normalmente ninguém a usa para mais nada; Isso significa que é provavelmente mongod que está usando a porta - o que significa que há uma instância já em execução.
Experimente pgrep -fa mongod para mostrar os processos em execução mongod .

(Independente disso, não está claro se o problema original foi corrigido. Não foi possível causar o erro original aqui porque não havia arquivos de diário.)

    
por Volker Siegel 01.10.2014 / 16:26