MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoDB no Ubuntu não será iniciado como um serviço, nada no log


OK, tudo se resume a permissões, mas vamos passo a passo. Quando você executa sudo mongod ele não carrega um arquivo de configuração, literalmente começa com o compilado nos padrões - porta 27017, caminho do banco de dados de /data/db etc. - é por isso que você recebeu o erro de não conseguir encontrar essa pasta. O "padrão do Ubuntu" é usado apenas quando você aponta para o arquivo de configuração (se você começar a usar o comando service, isso é feito para você nos bastidores).

Em seguida você executou assim:
sudo mongod -f /etc/mongodb.conf

Se não havia problemas antes, então haverá agora - você executou o processo, com sua configuração normal (apontando para seu dbpath e log usuais) como usuário root. Isso significa que agora haverá vários arquivos nessa pasta normal do MongoDB com o usuário:grupo de root:root .

Isso causará erros quando você tentar iniciá-lo como um serviço normal novamente, porque o usuário mongodb (o qual o serviço tentará executar) não terá permissão para acessar esses root:root arquivos e, mais notavelmente, provavelmente não será capaz de gravar no arquivo de log para fornecer qualquer informação.

Portanto, para executá-lo como um serviço normal, precisamos corrigir essas permissões. Primeiro, certifique-se de que o MongoDB não esteja sendo executado como root, então:
cd /var/log/mongodb
sudo chown -R mongodb:mongodb .
cd /var/lib/mongodb
sudo chown -R mongodb:mongodb .

Isso deve corrigi-lo (assumindo que o user:group é mongodb:mongodb ), embora provavelmente seja melhor verificar com um ls -al ou similar para ter certeza. Feito isso, você poderá fazer com que o serviço seja iniciado com êxito novamente.