Nesse post vou explicar como reparar o MongoDB no Ubuntu de forma fácil e rapida. Eu particularmente tive um problema com o mongo esses dias, onde sempre que eu tentava efetuar uma conexão com o mongo recebia o seguinte erro:
Error: couldn't connect to server 127.0.0.1} (anon):1137
Pesquisando um pouco na net, descobri que esse erro acontece devido algum desligamento incorreto efetuado anteriormente. Vamos ver agora como corrigir.
Por que o mongodb não inicia?
Infelizmente até o momento o mongodb não consegue se recuperar muito bem quando ele crasha o que nos força a ter que recuperá-lo na unha.
- Para iniciar vamos tentar conectar no mongo (digite
mongono terminal). Você provavelmente recebeu o erro citado acima. - Agora vamos verificar se ele está rodando. Para isso digite
sudo status mongodb, isso deverá retornarmongodb stop/waiting. - Tente iniciar o serviço com o comando sudo start mongodb. No terminal vai aparecer que o serviço foi iniciado (
mongodb start/running, process XXXX), porém se você der umsudo status mondodbnovamente, verá que ele continua paradostop/waiting. - Abra o arquivo de logs do mongo para ver se o seu problema é igual o meu. Ele fica em /var/log/mongodb/mongodb.log.
************** old lock file: /var/lib/mongodb/mongod.lock. probably means unclean shutdown recommend removing file and running --repair see: http://dochub.mongodb.org/core/repair for more information *************
Vamos agora a correção do problema:
- Vamos remover manualmente o arquivo .lock com o comando:
sudo rm /var/lib/mongodb/mongod.lock - Agora vamos executar o script para reparar o mongo:
sudo -u mongodb mongod -f /etc/mongodb.conf --repair. - Após executar o script inicie o serviço do mongo:
sudo start mongodb. Verifique se o serviço está mesmo rodando(sudo status mondodb) e depois tente conectar a base de test(mongo test).
Espero que isso ajude todos que tiverem o mesmo problema que eu.
Valeu galera e até a próxima!
tiago,
eu tinha bastante esses problemas com o mongo antes da versão 2.0
agora por default ele já vem com journaling habilitado então não é mais necessário rodar esse repair, basta reiniciar o mongo (o recover do couchdb é assim tbm), sem contar que depois da versão 2 os problemas com crashs diminuiram consideravelmente
abs