problema de conexão mongóide

4

Eu tenho tentado usar o Mongoid com Rails no Ubuntu. Mongodb estava funcionando bem para mim com o aplicativo rails 3.0 a 3.2.

Hoje, de repente, estou recebendo um erro:

/home/pravinmishra/.rvm/gems/ruby-1.9.2-p318/gems/mongo-1.5.2/lib/mongo/connection.rb:413:in 'connect': Failed to connect to a master node at localhost:27017 (Mongo::ConnectionFailure)

Muitas vezes enfrentei esse problema e os comandos abaixo funcionaram para mim:

sudo rm /var/lib/mongodb/mongod.lock
sudo -u mongodb mongod -f /etc/mongodb.conf --repair
sudo start mongodb
sudo status mongodb

Quando estou conectando do terminal do Ubuntu usando o mongo, recebo este erro:

MongoDB shell version: 2.0.1 connecting to: test Mon Jul 9 22:47:06 Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84 exception: connect failed

Qualquer sugestão seria apreciada.

    
por Pravin Mishra 09.07.2012 / 20:05

3 respostas

2

Talvez sua instância mongodb tenha sido encerrada inesperadamente e você tenha bloqueios antigos e o banco de dados esteja em estado inconsistente.

Como você já imaginou, inicie o mongoDB com o --repair flag, mas depois disso você precisa reiniciá-lo novamente sem ele.

Verifique também se todos os processos foram realmente finalizados ou se você não conseguirá ligar o servidor na mesma porta. Eu recomendaria executar netstat -tulnp e verifique se não há nada escutando na porta 27017.

    
por 10.07.2012 / 01:33
1

Com base no seu comentário, sobre o erro de arquivo de bloqueio antigo, você tem um mongod já em execução e está tentando se conectar à porta errada ou há um caso de um desligamento não limpo de um processo mongod anteriormente em execução e precisa remover o arquivo de bloqueio e reiniciar (possivelmente com reparo dependendo da natureza do desligamento não limpo).

Se isso acontecer novamente, definitivamente certifique-se de estar executando com o journaling ativado (padrão em 2.0), então o reparo não deve ser necessário.

    
por 21.07.2012 / 03:24
0

Você pode não conseguir se conectar ao localhost padrão: 27017, pois a instância anterior deve ter sido finalizada incorretamente devido a erros, exceções ou bloqueios. Por favor, tente matar os processos anteriores e, em seguida, executá-lo novamente.

    
por 23.07.2014 / 22:34

Tags