Eu criei /data/db
no diretório raiz e executei ./mongod
:
[initandlisten] exception in initAndListen: 20 Attempted to create a lock file on a read-only directory: /data/db, terminating
[initandlisten] shutdown: going to close listening sockets...
[initandlisten] shutdown: going to flush diaglog...
[initandlisten] now exiting
[initandlisten] shutting down with code:100
ls -ld /data/db
eid
para que possamos aconselhar.-ld
parte :)drwxrwxrwx. 4 mongod mongod 4096 Sep 17 18:18 /data/db
e ainda estou recebendo o erro. Alguma ideia?Respostas:
O problema é que o diretório que você criou
/data/db
pertence e é gravável apenas pelo usuário root, mas você está executando o mongod como você. Existem várias maneiras de resolver isso, mas, em última análise, você deve conceder as permissões corretas ao diretório em questão. Se for para produção, aconselho que você verifique os documentos e pense sobre isso com cuidado - você provavelmente deseja tomar um cuidado especial.No entanto, se isso é apenas para teste e você só precisa trabalhar e continuar com isso, você pode tentar isso, o que tornará o diretório gravável por todos:
ou isso, que fará com que o diretório seja de sua propriedade:
fonte
-R
alterar todos os/data/db
arquivos dentro de forma recursiva.chmod
gerou um novo erroinitAndListen : operation not permitted
, maschown
funcionou.chmod -R 755 /data/db
Em um Mac, eu tinha que fazer o seguinte:
porque havia também um arquivo no
/tmp
qual o Mongo também precisava de acessofonte
Se o seu sistema estiver usando o SELinux, certifique-se de usar o contexto correto para o diretório que você criou:
e clone o contexto com:
fonte
Eu experimentei o mesmo problema e a seguinte solução resolveu esse problema. Você deve tentar a seguinte solução.
fonte
Antes de tudo, pare todos os serviços do mongoDB e crie um diretório
/
, isso significa raiz, se você não tiver, e remova também o arquivo da porta. conceda toda a permissão a esse diretório, torne-se o proprietário desse diretório, execute o comando abaixo:Agora que você terminou, basta iniciar o serviço MongoDB, se não ajudou, tente alterar a porta como:
Nota: Para mim, tudo isso funciona e espero que funcione para você, cara!
fonte
Corrija as permissões de
/data/db
(ou/var/lib/mongodb
):reinicie o MongoDB, por exemplo, usando
Caso isso não ajude, verifique sua mensagem de erro se você estiver usando um diretório de dados diferente de / var / lib / mongodb. Nesse caso, execute
fonte
fonte
Soluções agradáveis, mas eu me pergunto por que ninguém está dando a solução para o Windows.
Se você estiver usando o Windows, basta "Executar como Administrador" o cmd.
fonte
Se você está verificando seus logs do mongodb e está recebendo esse erro, basta seguir as etapas como eu fiz. Isso ocorre devido a problemas de permissão no seu
/data/db
diretório. Estou usando o ubuntu16.04 e encontro solução com a execução de dois comandos simples, como segue.Etapa 1: conceda permissão ao diretório / data / db:
Etapa 2: tente iniciar o serviço mongod como:
Etapa 3: verificar o status do serviço mongod:
fonte
Se você não precisar ter os diretórios do banco de dados na raiz, poderá criar
data/db
no seu diretório pessoal (mkdir -p ~/data/db
).Depois, você pode iniciar o servidor MongoDB com a
--dbpath
opção:(Isso pressupõe que você o esteja iniciando a partir de um terminal. Por algum motivo estranho,
mongod
não aceita ~ como o caminho do diretório inicial, portanto, os truques de substituição do eco do bash, você também pode escrever/home/yourusername/data/db
)Na verdade, ele não precisa estar
~/data/db
, pode estar em qualquer lugar que você quiser e, dessa forma, você pode ter vários caminhos de banco de dados e organizar tudo muito bem. Pode não ser a melhor opção para produção (dependendo do que você deseja fazer), mas para o desenvolvimento funciona bem.fonte
Eu lidei com o mesmo problema:
Mude para o diretório MongoDB que contém o
bin
diretório e execute:Ao executar o MongoDB como usuário root, você pode ser solicitado a digitar a senha root. Se você ainda não pode executar o MongoDB, verifique as permissões para o diretório de dados do MongoDB. Entrar:
ou digite
ls -l /
as permissões para todos os diretórios e arquivos no diretório, incluindo o/data
diretório.O modo de permissão para o usuário root deve ser "
rwx
", o que significa que ele pode ler, gravar e executar os arquivos. Para fazer isso acontecer, usamos:755
é uma notação octal para definir as permissões do/data
diretório como "rwxr-xr-x
", o que significa que o usuário raiz pode ler, escrever e executar, enquanto o "grupo" e "todos" são capazes de ler e executar apenas.Nota: Quando não puder fazer isso, digite:
para definir a permissão como usuário root.
Em seguida, ao concluir essa etapa, recupere os modos de permissão usando:
que deve se parecer com:
Você não precisa se preocupar com o "
d
" no início e observe que as permissões refletem "rwxr-xr-x
".Agora você pode voltar ao diretório MongoDB e digitar:
para executar o MongoDB.
fonte
você só precisa executar o comando como superusuário:
basta digitar no terminal: sudo su mongod
fonte
Se você está no Windows e está tentando configurar o MongoDB, execute o cmd como o Admnistrator é o caminho a seguir, como Enrique sugeriu acima, veja aqui
fonte
Isso funcionou para mim no Ubuntu LTS 20.04:
fonte