Edytowałem plik konfiguracyjny MongoDB, aby przechowywać w nim dane /home/user/data/mongod
.
Ale dane są nadal zapisywane w starym katalogu, podobno dlatego, że uprawnienia do nowego folderu nie są przyznawane - jak mogę przekazać MongoDB niezbędne uprawnienia do tego katalogu?
Odpowiedzi:
Aby zmienić lokalizację używaną przez MongoDB do przechowywania danych, musisz:
/etc/mongodb.conf
i zmień liniędbpath=/var/lib/mongodb
na żądaną ścieżkę, npdbpath=/home/user/data/mongodb
mongodb
użytkownikowi pisanie na niej, npchown $USER -R /home/user/data/mongodb
sudo service mongodb restart
Pamiętaj, że jeśli w starej lokalizacji masz jakieś dane, które chcesz zachować, musisz najpierw zatrzymać usługę MongoDB, ręcznie przenieść pliki, a następnie ponownie uruchomić usługę.
Aby zatrzymać serwer MongoDB, użyj
sudo service mongodb stop
źródło
/var/lib/mongodb
Musisz ponownie uruchomić demona, aby zmiany odniosły skutek.
źródło
Jeśli uruchomisz mongodb z wiersza poleceń, możesz użyć
--dbpath
argumentu:mkdir mydata && mongod --dbpath mydata
Możesz napotkać jakiś problem związany z „plikiem istnieje” lub coś takiego, jest to dobrze znane ograniczenie MongoDb, więcej na ten temat tutaj . Po prostu zmień napęd dyskowy i sprawdź, czy teraz nie masz tego problemu.źródło
Natrafiłem dzisiaj na ten sam problem i rozwiązałem go, wykonując następujące czynności.
Edytuj plik mongod.conf i edytuj wartość zmiennej dbPath.
Następnie użyj następującego polecenia, aby uruchomić usługę mongod
Próbowałem uruchomić powyżej polecenia bez
sudo
i dostałem błąd. Więc użyj,sudo
aby uruchomić polecenie.źródło
mv / var / lib / mongodb (katalog, w którym zapisałeś dane) do / path i chown mondodb: mongodb / path (katalog, w którym chcesz zapisać dane)
edytuj plik /etc/mongod.conf
usługa mongod restart (jeśli nie można się połączyć, sprawdź / path, jeśli nie zawiera mongod.lock, jeśli istnieje, usuń go i uruchom ponownie)
źródło