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


13

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

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


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, подробнее об этом здесь . Просто замените диск и проверьте, нет ли у вас этой проблемы снова.


0

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

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

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


его mongodb: mongodb я думаю .. !!
Лакшман Пилака
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.