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

Mongodb 3.4.3 Permissão negada erro wiredtiger_kv_engine.cpp 267 com o Ubuntu 16


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).