Як змінити розташування, яке MongoDB використовує для зберігання своїх даних?


13

Я відредагував конфігураційний файл MongoDB, щоб зберегти його дані /home/user/data/mongod.

Але дані все ще записуються в старий каталог, нібито тому, що дозволи на нову папку не надані - як я можу надати MongoDB необхідні дозволи для цього каталогу?


1
Як ви редагували конфігурацію? Чому ви вважаєте, що це проблема з дозволами? Чому ви вважаєте, що Монго використовує каталог за замовчуванням, а не видавати помилку? (Це спосіб запитання: чи перевіряли ви файл журналу помилок?)
— Андреа Корбеліні

Відповіді:


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, про це докладніше тут . Просто змініть дисковий накопичувач і протестуйте, якщо зараз у вас цього питання не виникає знову.


1

Я зіткнувся з тим же питанням сьогодні, і вирішив цю проблему, виконавши наступні кроки.

  1. Редагуйте файл mongod.conf та відредагуйте значення змінної dbPath.

    sudo -H gedit /etc/mongod.conf
    
  2. Потім використовуйте наступну команду для запуску послуги mongod

    sudo mongod --dbpath "your db path"
    

    Я спробував запустити вище команди без sudoі отримав помилку. Тому використовуйте sudoдля запуску команди.


0

mv the / 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.