Como alterar o local que o MongoDB usa para armazenar seus dados?

13

Editei o arquivo de configuração do MongoDB para armazenar seus dados /home/user/data/mongod.

Mas os dados ainda são gravados no diretório antigo, supostamente porque as permissões para a nova pasta não são concedidas - como posso conceder ao MongoDB as permissões necessárias para esse diretório?

deemel
fonte
1
Como você editou sua configuração? Por que você acha que é um problema com as permissões? Por que você acha que o Mongo usa o diretório padrão em vez de gerar um erro? (Esta é uma maneira de perguntar: você tem verificado arquivo de log os erros?)
Andrea Corbellini

Respostas:

29

Para alterar o local usado pelo MongoDB para armazenar seus dados, você precisa:

  1. Edite /etc/mongodb.confe altere a linha dbpath=/var/lib/mongodbpara o caminho que você deseja, por exemplodbpath=/home/user/data/mongodb
  2. Atualize as permissões do caminho escolhido para permitir que o mongodbusuário escreva nele, por exemplochown $USER -R /home/user/data/mongodb
  3. Reinicie o serviço MongoDB executando sudo service mongodb restart

Observe que, se você tiver algum dado no local antigo que deseja manter, será necessário interromper o serviço do MongoDB primeiro, mover manualmente os arquivos e iniciar o serviço novamente.

Para parar o servidor MongoDB, use sudo service mongodb stop

David Edwards
fonte
quais arquivos eu preciso mover?
chovy
@chovy Os arquivos no diretório de armazenamento.
David Edwards
Eu apaguei tudo/var/lib/mongodb
chovy
@chovy Então você provavelmente excluiu todos os seus dados, se houver, e não possui arquivos que possam ser movidos.
David Edwards
sim, tudo bem. eu não precisava salvá-lo. não tinha certeza se havia arquivos que não são de dados que eu precisava lá. aparentemente, não porque parece trabalho ainda
Chovy
1

Você precisa reiniciar o daemon para que as alterações entrem em vigor.

sudo service mongodb restart
Cyril ALFARO
fonte
Ti reiniciar o Deamon eu também te dou maneiras. A maneira antiga: "etc / init.d / mongodb restart", a nova maneira: "sudo service mongodb restart"
Cyril ALFARO
1
Eu recomendo editar sua resposta para incluir essas informações.
Eliah Kagan
1

Se você iniciar o mongodb a partir da linha de comando, poderá usar o --dbpathargumento: mkdir mydata && mongod --dbpath mydata Você pode encontrar algum problema relacionado a "arquivo existente" ou algo assim, é uma limitação bem conhecida do MongoDb, mais sobre isso aqui . Basta alterar a unidade de disco e testar se agora você não tem esse problema novamente.

Melardev
fonte
0

mv o / var / lib / mongodb (o diretório que você salvou os dados) no / path e chown mondodb: mongodb / path (o diretório que você deseja salvar os dados)

edite o /etc/mongod.conf

service mongod restart (se não puder se conectar, verifique o / path se não contiver o mongod.lock, se existir, exclua-o e reinicie novamente)

user485014
fonte
its mongodb: mongodb eu acho .. !!
Lakshman Pilaka 13/01/19