MongoDb закрывается с кодом 100 [закрыто]


91

Я следил за документами MongoDb, чтобы настроить свой первый MongoDb,

Когда я запускаю MongoDB с помощью команды

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

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

Ответы:


149

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 02

@cespon Gold tag ..: P
Аравинд

Мой был на самом деле/mongodb_data/db
Фабрицио

Убедитесь, что каталог данных и файлы принадлежат пользователю и группе mongodb (в Linux).
PeterM

71

Для пользователей macOS, чтобы исправить эту проблему:

Вам необходимо пройти следующие шаги:

Создайте каталог «db». Здесь будут жить файлы данных Mongo. Вы можете создать каталог в местоположении по умолчанию, запустив:

sudo mkdir -p /data/db

Убедитесь, что /data/dbкаталог имеет нужные разрешения, запустив:

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

Теперь все готово, и вы можете запустить sudo mongodсервер Mongo.

Это не работает, если вы бежите только mongod

Источник .


5
то же самое в 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 (обычно ~ / data)
  2. Добавить разрешение на чтение + запись с помощью sudo chmod -R ugo+rw data

Если вам нужно использовать sudoпри запуске mongodb ( sudo mongod), это означает, что у вас нет прав на чтение и запись в папке данных mongodb.


1
Спасибо за это. Мне пришлось добавить разрешение на чтение + запись в / data Я не понимаю, что я сделал не так, но я установил свою папку данных в ~ / Applications / mongodb / data
vinsentos

3

Пожалуйста, сделайте следующие шаги:

  1. Как упоминали другие друзья, вы должны сначала создать каталог для хранения данных вашей базы данных. Эта папка может быть примерно такой:

    C: \ mongo-data

  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, чтобы посмотреть, помогло ли это. Рад, что вспомнил, что в cli args иногда не используется знак "=".


1

сначала вам нужно создать каталог данных, в котором MongoDB хранит данные. Путь к каталогу данных MongoDB по умолчанию - это абсолютный путь \ data \ db на диске, с которого вы запускаете MongoDB.

если вы установили на диск C: /, вам необходимо создать каталог data \ 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 brew, запуск mongodb-community

3. введите mongod или mongod --dbpath / System / Volumes / Data / data / db.

4.И если ошибка mongod show (завершение работы с кодом 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 с помощью Tarball .tgz

(( Начиная с macOS 10.15 Catalina, Apple ограничивает доступ к каталогу данных MongoDB по умолчанию / data / db. В macOS 10.15 Catalina вы должны использовать другой каталог данных, например / usr / local / var / mongodb. ))

вы можете решить это следующим образом:

(MacOS Catalina и выше)

Apple создала новый том в Каталине в целях безопасности. Если вы используете Catalina, вам необходимо создать папку / 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

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


0

В моем случае я получил аналогичную ошибку, и это произошло потому, что я запустил mongod с пользователем root и создал файл журнала, доступный только root. Я мог бы исправить это, изменив владельца с 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: каталог данных / data / db не найден., завершение

выключается с кодом 100

Затем попробуйте (создать папку данных и db со всеми разрешениями)

mongod --dbpath = / данные

используйте новую вкладку и введите монго.

> используйте dbs

Если вы все еще сталкиваетесь с проблемой, вы можете проверить Mac catalina: ( https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x-tarball/ )

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

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