Как изменить местоположение, которое MongoDB использует для хранения своих данных?

13

Я отредактировал конфигурационный файл MongoDB для хранения его данных /home/user/data/mongod.

Но данные все еще записываются в старый каталог, предположительно потому, что разрешения для новой папки не предоставлены - как я могу дать MongoDB необходимые разрешения для этого каталога?

deemel
источник
1
Как вы редактировали свою конфигурацию? Почему вы думаете, что это проблема с разрешениями? Почему вы думаете, что Mongo использует каталог по умолчанию вместо того, чтобы выдавать ошибку? (Это способ задать вопрос: проверяли ли вы файл журнала ошибок?)
Андреа Корбеллини

Ответы:

29

Чтобы изменить местоположение, используемое MongoDB для хранения своих данных, вам необходимо:

  1. Отредактируйте /etc/mongodb.confи измените строку dbpath=/var/lib/mongodbна путь, который вы хотите, например,dbpath=/home/user/data/mongodb
  2. Обновите разрешения выбранного вами пути, чтобы позволить mongodbпользователю писать в него, например,chown $USER -R /home/user/data/mongodb
  3. Перезапустите службу MongoDB, запустив sudo service mongodb restart

Обратите внимание, что если у вас есть какие-либо данные в старом месте, которые вы хотите сохранить, вам необходимо сначала остановить службу MongoDB, вручную переместить файлы, а затем снова запустить службу.

Чтобы остановить использование сервера MongoDB sudo service mongodb stop

Дэвид Эдвардс
источник
какие файлы мне нужно переместить?
Чов
@chovy Файлы в каталоге хранения.
Дэвид Эдвардс
Я удалил все в/var/lib/mongodb
chovy
@chovy Тогда вы, вероятно, удалили все свои данные, если они у вас были, и у вас нет файлов, которые вы можете переместить.
Дэвид Эдвардс
да это нормально мне не нужно было сохранять это. Я не был уверен, были ли там файлы без данных, в которых я нуждался. видимо, не потому, что, кажется, все еще работает
Чови
1

Вам нужно перезапустить демон, чтобы изменения вступили в силу.

sudo service mongodb restart
Кирилл АЛЬФАРО
источник
Ти перезапусти Деймон, я тоже дам тебе пути. Старый способ: «etc / init.d / mongodb restart», новый способ: «sudo service mongodb restart»
Кирилл АЛЬФАРО
1
Я рекомендую отредактировать ваш ответ, чтобы включить эту информацию.
Элия ​​Каган
1

Если вы запускаете mongodb из командной строки, вы можете использовать --dbpathаргумент: mkdir mydata && mongod --dbpath mydata вы можете столкнуться с некоторой проблемой, связанной с «файл существует» или чем-то другим, это хорошо известное ограничение MongoDb, подробнее об этом здесь . Просто замените диск и проверьте, нет ли у вас этой проблемы снова.

Melardev
источник
0

Перейдите в / var / lib / mongodb (каталог, в котором вы сохранили данные) в / path и chown mondodb: mongodb / path (каталог, в котором вы хотите сохранить данные)

отредактируйте /etc/mongod.conf

перезапуск службы mongod (если не удается подключиться, проверьте / путь, если он не содержит mongod.lock, если он существует, удалите его и перезапустите снова)

user485014
источник
его mongodb: mongodb я думаю .. !!
Лакшман Пилака