MongoDb wyłącza się z kodem 100 [zamknięty]


91

Postępowałem zgodnie z dokumentami MongoDb, aby skonfigurować moją pierwszą bazę danych MongoDb,

Kiedy uruchamiam MongoDB za pomocą polecenia

C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe

Otrzymuję następujący błąd wprowadź opis obrazu tutaj

Odpowiedzi:


149

MongoDB potrzebuje folderu do przechowywania bazy danych. Utwórz C:\data\db\katalog:

mkdir C:\data\db

a następnie uruchom MongoDB:

C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe

Czasami C:\data\dbfolder już istnieje z powodu poprzedniej instalacji. Więc jeśli z tego powodu mongod.exenie zadziała, możesz usunąć całą zawartość z C:\data\dbfolderu i uruchomić mongod.exeponownie.


Jeśli widzisz szczegóły błędu, jest tam wiersz z informacją, że katalog C:\data\db\ nie został znaleziony. Użyj:mkdir C:\data\db
cespon

@cespon Gold tag ..: P
Aravind

Mój był właściwie/mongodb_data/db
Fabricio,

Upewnij się, że katalog danych i pliki należą do użytkownika i grupy mongodb (w systemie Linux).
PeterM

71

Dla użytkowników macOS, aby rozwiązać ten problem:

Musisz wykonać następujące kroki:

Utwórz katalog „db”. Tutaj będą znajdować się pliki danych Mongo. Możesz utworzyć katalog w domyślnej lokalizacji, uruchamiając:

sudo mkdir -p /data/db

Upewnij się, że /data/dbkatalog ma odpowiednie uprawnienia, uruchamiając:

sudo chown -R `id -un` /data/db

Wszystko gotowe i możesz biec, sudo mongodaby uruchomić serwer Mongo.

To nie działa, jeśli tylko biegasz mongod

Źródło .


5
to samo w ubuntu 16.04
Manoj Rana

Otrzymuję mkdir: /data/db: Read-only file systempo uruchomieniu pierwszego polecenia. Jak mogłem to naprawić? Dziękuję Ci.
LC

@LC Dodaj sudo do polecenia mkdir
Itay Bachar


15

Aby zmienić domyślny folder db C:\data\dbw systemie Windows, polecenie brzmi:

--dbpath

Na przykład:

\mongod --dbpath C:\myfolder

7

Użytkownicy komputerów Mac

Zamiast uruchamiać MongoDB z:

sudo mongod

Możesz użyć mongodzamiast tego, jeśli:

  1. Zlokalizuj folder danych mongodb (zwykle ~ / data)
  2. Dodaj uprawnienia do odczytu i zapisu sudo chmod -R ugo+rw data

Jeśli musisz używać sudopodczas uruchamiania mongodb ( sudo mongod), oznacza to, że nie masz uprawnień do odczytu i zapisu w folderze danych mongodb


1
Dzięki za to. Musiałem dodać uprawnienia do odczytu + zapisu do / data Nie rozumiem, co zrobiłem źle, ale ustawiłem folder danych na ~ / Applications / mongodb / data
vinsentos

3

Wykonaj następujące kroki:

  1. Jak wspominali inni znajomi, najpierw powinieneś utworzyć katalog, w którym będą przechowywane dane bazy danych. Ten folder może wyglądać następująco:

    C: \ mongo-data

  2. Z wiersza poleceń przejdź do miejsca, w którym zainstalowałeś mongodb i gdzie znajduje się mongod.exe. W moim przypadku pełna ścieżka to:

    C: \ Program Files \ MongoDB \ Server \ 3.4 \ bin

  3. Stąd uruchom mongod.exe i przekaż mu ścieżkę do folderu utworzonego w kroku pierwszym, używając flagi --dbpath w następujący sposób:

    mongod.exe --dbpath "C: \ mongo-data"

Uwaga : jeśli korzystasz z systemu Windows, konieczne jest użycie podwójnych cudzysłowów ("") w powyższym, aby działał poprawnie.

W ten sposób otrzymasz coś takiego:

2017-06-14T12:45:59.892+0430 I NETWORK  [thread1] waiting for connections on port 27017

Jeśli użyjesz apostrofów („”) w oknach, otrzymasz:

2017-06-14T01:13:45.965-0700 I CONTROL  [initandlisten] shutting down with code:100

Mam nadzieję, że pomoże to rozwiązać problem.


1

Aby uruchomić Mongo DB demona za pomocą mongodpolecenia, powinieneś mieć katalog bazy danych, prawdopodobnie musisz uruchomić:

mkdir C:\data\db

Ponadto MongoDB musi mieć uprawnienia do zapisu w tym katalogu lub powinno być uruchamiane z uprawnieniami administratora, na przykład sudo mongod.


1

Podczas próby uruchomienia mongodb (w systemie Mac OS) otrzymywałem następujący błąd.

"shutting down with code:100"

Użyłem następującego polecenia:

./mongod --dbpath=~/mongo-data

Rozwiązanie dla mnie polegało na tym, że nie potrzebowałem znaku „=” i to powodowało błąd. Więc zrobiłem

./mongod --dbpath ~/mongo-data

Chciałem tylko to wyrzucić, ponieważ błąd w żaden sposób nie wskazuje, że to jest problem. Prawie usunąłem zawartość katalogu ~ / mongo-data, aby sprawdzić, czy to pomogło. Cieszę się, że przypomniałem sobie, że argumenty CLI czasami nie używają znaku „=”.


1

najpierw musisz utworzyć katalog danych, w którym MongoDB przechowuje dane. Domyślna ścieżka katalogu danych MongoDB to ścieżka bezwzględna \ data \ db na dysku, z którego uruchamiasz MongoDB.

jeśli masz instalację na dysku C: /, musisz utworzyć katalog data \ db. za wykonanie tego polecenia uruchomienia w cmd

C:\>mkdir data\db

Aby uruchomić MongoDB, uruchom mongod.exe.

"C:\Program Files\MongoDB\Server\4.2\bin\mongod.exe" --dbpath="c:\data\db"

Opcja --dbpath wskazuje na katalog bazy danych. wprowadź opis obrazu tutaj

Połącz się z MongoDB.

"C:\Program Files\MongoDB\Server\4.2\bin\mongo.exe"

aby sprawdzić, czy wszystko działa dobrze:

show dbs

wprowadź opis obrazu tutaj


1

Jeśli pokazuje błąd (zamykanie z kodem 100), oznacza to, że nie znajduje żądanej lokalizacji pliku.

1.a Jeśli jest to wersja sprzed macOS Catalina, utwórz katalog za pomocą sudo mkdir -p / data / db i nadaj uprawnienia do używania go
sudo chown -R id -un/ data / db.

1.b, jeśli jest to macOS Catalina i nowsze, wykonaj sudo mkdir -p / System / Volumes / data / db i nadaj mu uprawnienia sudo chown -R id -un/ System / Volumes / data / db.

2.Uruchomienie Mongo DB Brew Services Run Mongodb-Community

3. Wpisz mongod lub mongod --dbpath / System / Volumes / Data / data / db

4 A jeśli mongod show błąd (zamykanie z kodem 48)
oznacza to, że port jest już używany, więc możesz zrobić dwie rzeczy

4.a Albo zmienisz port mongod, podając
numer portu mongod --dbpath / System / Volumes / Data / data / db - port 27018.

4.b Lub Możesz zabić proces na tym porcie, znajdując proces przez sudo lsof -i: 27017, a następnie zabijając komendą
kill -9

5. powtórz kroki 2 i 3.


1

Dla użytkowników macOS zajmij się poniższym problemem:

jeśli instalujesz społeczność MongoDB na macOS przy użyciu .tgz Tarball

(( Począwszy od macOS 10.15 Catalina, Apple ogranicza dostęp do domyślnego katalogu danych MongoDB / data / db. W macOS 10.15 Catalina musisz użyć innego katalogu danych, takiego jak / usr / local / var / mongodb. ))

możesz rozwiązać to w następujący sposób:

(Od MacOS Catalina)

Apple utworzył nowy wolumin w Catalinie ze względów bezpieczeństwa. Jeśli korzystasz z Cataliny, musisz utworzyć folder / data / db w System / Volumes / Data.

Użyj tego polecenia:

sudo mkdir -p /System/Volumes/Data/data/db

Następnie użyj tego polecenia, aby nadać uprawnienia:

sudo chown -R `id -un` /System/Volumes/Data/data/db

to zastąpi normalne

sudo mkdir -p /data/db

Upewnij się, że katalog / data / db ma odpowiednie uprawnienia, uruchamiając:

sudo chown -R `id -un` /data/db

po zakończeniu i uruchomieniu mongoDB możesz użyć w terminalu:

sudo mongod --dbpath /System/Volumes/Data/data/db

0

W systemie MacOS : -

Jeśli podczas uruchamiania serwera mongo zapomniałeś podać ścieżki do wcześniej utworzonej bazy danych, pojawi się powyższy błąd.

sudo ./mongod --dbpath ../../mongo-data/

Odniesienie

Uwaga: - ./mongod && ../../mongo-data to ścieżka względna. Możesz więc tego uniknąć, konfigurując zmienną środowiskową

Odniesienie


0

W przypadku systemu Windows mam ten sam problem.

Poprawka była taka - muszę uruchomić wiersz poleceń jako administrator.


1
Sugerowałbym przeformułowanie odpowiedzi na coś takiego: „Jeśli masz ten problem w systemie Windows, upewnij się, że uruchamiasz wiersz poleceń jako administrator”.
Filnor

0

jeśli masz już katalog, sprawdź uprawnienia dir lub spróbuj ponownie uruchomić mongo za pomocą sudo. Usługi sudo brew uruchamiają się mongodb


0

W moim przypadku wystąpił podobny błąd i działo się tak, ponieważ uruchomiłem mongod z użytkownikiem root i utworzyłem plik dziennika dostępny tylko dla roota. Mogę to naprawić, zmieniając własność z roota na użytkownika, z którego zwykle uruchamiasz mongod. Plik dziennika znajdował się w / var / lib / mongodb / journal /


0

Jeśli używasz Virtualbox, sprawdź swoją maszynę wirtualną.

docker-machine ssh

df -h

Spójrz na dev / sda1, jeśli nie masz wolnego miejsca, może to być spowodowane dużą liczbą obrazów lub kontenerów. możesz je usunąć używając "docker rm" i "docker rmi"


0

Ten kod zakończenia zostanie również podany, jeśli zmieniasz wersje MongoDB, a katalog danych jest niekompatybilny, na przykład w przypadku obniżenia wersji. Przenieś stary katalog w inne miejsce i utwórz nowy katalog (zgodnie z instrukcjami podanymi w innych odpowiedziach).


0

Aravind.

Zdarzyło się to również ze mną, ponieważ zatrzymałem MongoDB przez Menedżera zadań.

Utworzenie folderu C: \ data \ db i uruchomienie MongoDB w C: \ Program Files \ MongoDB \ Server \ 3.4 \ bin \ mongod.exe działało, jak sugerował cespon, ale MongoDB nie wyświetlało żadnej z moich baz danych utworzone wcześniej.

Następnie usuń folder C: \ data \ db i napraw instalację za pomocą instalatora MongoDB , odzyskałem dane i uruchomiłem normalnie MongoDB.

(Jestem bardzo nowy w MongoDB, ale pomogło mi to rozwiązać ten problem i odzyskać może dane podglądu).


0

wpisano mongod i otrzymuję błąd

Błędy:

wyjątek w initAndListen: NonExistentPath: Data directory / data / db not found., zakończenie

wyłącza się z kodem 100

Następnie spróbuj z (utwórz folder danych i db z wszystkimi uprawnieniami)

mongod --dbpath = / data

użyj nowej karty i wpisz mongo.

> używam dbs

Jeśli nadal masz problem, możesz sprawdzić mac catalina: ( https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x-tarball/ )

dla Windows: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows-unattended/

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.