Estou tendo problemas ao iniciar o mongod como serviço:Como é possível que funcione quando faço sudo mongod -f /etc/mongod.conf mas ao iniciá-lo com sudo service mongod start recebo um erro no log
O
sudo comando inicia mongod com root permissões (também conhecido como acesso de superusuário). Se você executar mongod como um serviço o usuário e o grupo são configurados na definição do serviço (mongodb para ambos no seu exemplo). Não há necessidade de executar o
mongod processo como a root usuário, e isso é fortemente desencorajado de acordo com a prática de segurança comum do Princípio de privilégio mínimo. Se você quiser testar uma configuração a partir da linha de comando, você pode usar
sudo para executar com um usuário especificado em vez do usuário padrão (raiz). Por exemplo:
sudo -u mongodb mongod -f /etc/mongod.conf
Em geral, é melhor usar uma configuração de serviço em vez de executar
mongod manualmente. Com a invocação manual, você também terá que se lembrar de incluir parâmetros como o caminho do arquivo de configuração (já que não há caminho de configuração padrão). Sem um arquivo de configuração, mongod também usa opções padrão como um dbPath de /data/db .
Asserção:28595:13:Permissão negada src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 267
A causa provável de seus erros de permissão é ter iniciado anteriormente
mongod como a root do utilizador. Alguns diretórios e arquivos podem agora pertencer ao usuário root, então o mongodb usuário não pode acessá-los. Seu erro específico está relacionado ao acesso a arquivos no diretório de dados (ou seja, o storage.dbPath configurado em mongod.conf ). Assumindo que você não alterou os caminhos padrão em seu
mongod.conf arquivo, você deve ser capaz de ajustar recursivamente as permissões para corresponder ao que o mongod.service definição espera. Primeiro, verifique se você parou seu
mongod instância se estiver em execução no momento. Em seguida, ajuste recursivamente as permissões para o usuário e grupo esperados:
# storage.dbPath
sudo chown -R mongodb:mongodb /var/lib/mongodb
# systemLog.path
sudo chown -R mongodb:mongodb /var/log/mongodb
Agora você deve ser capaz de iniciar o
mongod como um serviço. Se o serviço não iniciar, deve haver mais detalhes no mongod log (assumindo que o arquivo de log é gravável pelo mongodb usuário do serviço).