MongoDb вимикається за допомогою коду 100 [закрито]


90

Я дотримувався Документів MongoDb, щоб налаштувати свій перший MongoDb,

Коли я запускаю MongoDB за допомогою команди

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

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

Відповіді:


148

MongoDB потрібна папка для зберігання бази даних. Створіть C:\data\db\каталог:

mkdir C:\data\db

а потім запустіть MongoDB:

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

Іноді C:\data\dbпапка вже існує через попередню інсталяцію. Отже, якщо з цієї причини mongod.exeне працює, ви можете видалити весь вміст із C:\data\dbпапки та виконати mongod.exeзнову.


Якщо ви бачите деталі помилки, є рядок із повідомленням, що каталог C:\data\db\ не знайдено. Використання:mkdir C:\data\db
цеспон

@cespon Gold tag ..: P
Aravind

Моє було насправді/mongodb_data/db
Fabricio

Переконайтеся, що каталог даних та файли належать користувачеві та групі mongodb (на Linux).
PeterM

69

Для вирішення цієї проблеми користувачами macOS:

Вам потрібно виконати такі дії:

Створіть каталог “db”. Тут будуть жити файли даних Mongo. Ви можете створити каталог у типовому розташуванні, запустивши:

sudo mkdir -p /data/db

Переконайтесь, що /data/dbкаталог має правильні дозволи, запустивши:

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

Зараз все готово, і ви можете запустити sudo mongodсервер Mongo.

Це не працює, якщо ви біжите лише mongod

Джерело .


3
те саме в ubuntu 16.04
Манодж Рана

Я отримую mkdir: /data/db: Read-only file systemпри запуску першої команди. Як я міг це виправити? Дякую.
LC

@LC Додати sudo до команди mkdir
Ітай Бачар,


15

Щоб змінити папку db за замовчуванням C:\data\dbу Windows, виконується команда:

--dbpath

Наприклад:

\mongod --dbpath C:\myfolder

7

Користувачі Mac

Замість запуску MongoDB з:

sudo mongod

Ви можете використовувати mongodзамість цього, якщо:

  1. Знайдіть папку даних mongodb (зазвичай ~ / дані)
  2. Додайте дозвіл на читання + запис sudo chmod -R ugo+rw data

Якщо вам потрібно використовувати sudoпід час запуску mongodb ( sudo mongod), це означає, що ви не маєте дозволу на читання та запис у папці даних mongodb


1
Дякую за це. Мені довелося додати дозвіл на читання + запис у / data. Я не розумію, що я зробив неправильно, але я встановив для моєї папки даних ~ / Applications / mongodb / data
vinsentos

3

Виконайте такі кроки:

  1. Як згадували інші друзі, вам слід спочатку створити каталог для зберігання даних бази даних. Ця папка може бути приблизно такою:

    C: \ mongo-дані

  2. З командного рядка перейдіть до місця, де ви встановили mongodb і де знаходиться mongod.exe. У моєму випадку повний шлях:

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

  3. Звідси запустіть mongod.exe і передайте йому шлях до папки, яку ви створили на першому кроці, використовуючи прапор --dbpath таким чином:

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

Зверніть увагу : якщо ви користуєтеся Windows, для правильної роботи необхідно використовувати подвійні лапки ("") у наведеному вище.

Таким чином ви отримаєте щось на зразок наступного:

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

Якщо ви використовуєте одинарні лапки ('') у вікнах, ви отримаєте:

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

Сподіваюся, це допоможе вирішити проблему.


1

Щоб запустити демон Mongo DB за допомогою mongodкоманди, у вас повинен бути каталог баз даних, можливо, вам потрібно запустити:

mkdir C:\data\db

Крім того, MongoDB повинні мати дозволи на запис для цього каталогу, або його слід запускати з дозволами суперкористувача, наприклад sudo mongod.


1

Під час спроби запустити mongodb (на mac os) я постійно отримував таку помилку.

"shutting down with code:100"

Я використовував таку команду:

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

Виправлення для мене полягало в тому, що мені не потрібен був знак "=", і це спричинило помилку. Так я і зробив

./mongod --dbpath ~/mongo-data

Просто хотів викинути це там, оскільки помилка жодним чином не вказує, що це проблема. Я майже видалив вміст каталогу ~ / mongo-data, щоб перевірити, чи це допомогло. Радий, що я згадав, що в аргументах кліків іноді не використовується знак "=".


1

спочатку потрібно створити каталог даних, де MongoDB зберігає дані. Шлях до каталогу даних MongoDB за замовчуванням - це абсолютний шлях \ data \ db на диску, з якого ви запускаєте MongoDB.

якщо ви встановили в C: / диск, то вам потрібно створити каталог даних \ db. для виконання цієї команди запуску в cmd

C:\>mkdir data\db

Щоб запустити MongoDB, запустіть mongod.exe.

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

Параметр --dbpath вказує на каталог вашої бази даних. введіть тут опис зображення

Підключіться до MongoDB.

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

щоб перевірити всі роботи добре:

show dbs

введіть тут опис зображення


1

1. Якщо він показує помилку (вимикання з кодом 100), це означає, що він не знаходить потрібного місця розташування файлу.

1.a Якщо це раніше macOS Catalina, тоді створіть каталог із sudo mkdir -p / data / db та надайте дозволи на його використання
sudo chown -R id -un/ data / db.

1.b, якщо це macOS Catalina, то зробіть sudo mkdir -p / System / Volumes / data / db та надайте йому дозволи sudo chown -R id -un / System / Volumes / data / db.

2.Запустіть служби пивоваріння mongo db, запустіть mongodb-співтовариство

3.Введіть mongod або mongod --dbpath / System / Volumes / Data / data / db

4. І якщо монгод показує помилку (вимикання з кодом 48), це
означає, що порт вже використовується, тож ви можете зробити дві речі

4.a Ви можете змінити порт mongod, вказавши порт
номер mongod --dbpath / System / Volumes / Data / data / db —port 27018.

4.b Або Ви можете вбити процес у цьому порту, знайшовши процес за допомогою sudo lsof -i: 27017, а потім вбити за допомогою команди
kill -9

5. Повторіть кроки 2 і 3.


1

Для користувачів macOS подбайте про наступну проблему:

якщо ви встановлюєте MongoDB Community на macOS за допомогою .tgz Tarball

(( Починаючи з macOS 10.15 Catalina, Apple обмежує доступ до каталогу даних MongoDB за замовчуванням / data / db. У macOS 10.15 Catalina ви повинні використовувати інший каталог даних, наприклад / usr / local / var / mongodb. ))

Ви можете вирішити це наступним чином:

(MacOS Catalina і далі)

Apple створила новий том у Каталіні з метою безпеки. Якщо ви перебуваєте на Каталіні, вам потрібно створити папку / data / db в System / Volumes / Data.

Використовуйте цю команду:

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

Потім за допомогою цієї команди надайте дозволи:

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

це замінить нормальне

sudo mkdir -p /data/db

Переконайтесь, що каталог / data / db має правильні дозволи, запустивши:

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

як тільки ви закінчите і запустите mongoDB, ви можете використовувати наступне в терміналі:

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

0

У MacOS : -

Якщо ви забули вказати шлях до раніше створеної бази даних під час запуску сервера mongo, з’явиться вищевказана помилка.

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

Довідково

Примітка: - ./mongod && ../../mongo-data - це відносний шлях. Таким чином, ви можете уникнути цього, налаштувавши змінну середовища

Довідково


0

Для Windows у мене така сама проблема.

Виправлення було - мені потрібно запустити командний рядок як адміністратор.


1
Я б запропонував переформулювати відповідь приблизно так: "Якщо у вас проблема в Windows, переконайтеся, що ви використовуєте командний рядок як адміністратор".
Фільнор

0

якщо у вас вже є каталог, перевірте дозволи dir або спробуйте перезапустити mongo за допомогою sudo. sudo brew services запускає mongodb


0

У моєму випадку я отримав подібну помилку, і це траплялося, тому що я запустив mongod з кореневим користувачем, і який створив файл журналу, доступний лише для кореня. Я міг це виправити, змінивши право власності з root на користувача, з якого ви зазвичай запускаєте mongod. Файл журналу знаходився в / var / lib / mongodb / journal /


0

Якщо ви використовуєте Virtualbox, перевірте свою віртуальну машину.

docker-machine ssh

df -h

Подивіться на dev / sda1, якщо у вас немає вільного місця, це може бути пов’язано з великою кількістю зображень або контейнерів. Ви можете видалити їх за допомогою "docker rm" та "docker rmi"


0

Цей код виходу також буде наданий, якщо ви змінюєте версії MongoDB і каталог даних несумісний, наприклад, при зниженні версії. Перемістіть старий каталог в інше місце та створіть новий каталог (згідно з інструкціями, наведеними в інших відповідях).


0

Аравінд.

Це трапилось і зі мною, тому що я зупинив MongoDB за допомогою Диспетчера завдань.

Створення папки C: \ data \ db та запуск MongoDB за адресою C: \ Program Files \ MongoDB \ Server \ 3.4 \ bin \ mongod.exe працював у мене, як пропонував cespon, але MongoDB не показував жодної з моїх баз даних створені раніше.

Потім видаліть папку C: \ data \ db та відремонтуйте установку за допомогою інсталятора MongoDB , я відновив свої дані та нормально запустив MongoDB.

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


0

набрав mongod і отримує помилку

Помилки:

виняток у initAndListen: NonExistentPath: Каталог даних / дані / db не знайдено.

вимикається за допомогою Коду 100

Потім спробуйте за допомогою (створити папку даних і db з усіма дозволами)

mongod --dbpath = / data

використовуйте нову вкладку та введіть mongo.

> використовувати dbs

Якщо ви все ще стикаєтеся з проблемою, тоді ви можете перевірити наявність Mac catalina: ( https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x-tarball/ )

для Windows: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows-unattended/

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.