Не удается запустить MongoDB как услугу

Я разрабатываю для MongoDB уже несколько месяцев и хочу установить его как сервис на моей машине Windows 7 Enterprise. Ниже приведена команда, которую я выполнил для создания службы:

"D:Milvia SystemsDevelopmentMongoDBmongod.exe" --logpath "D:Milvia SystemsDevelopmentMongoDBlogsDBLog.log" --logappend --dbpath "D:Milvia SystemsDevelopmentMongoDBdb" -vvv --reinstall

Тем не менее, всякий раз, когда я использую net start «MongoDB» или панель управления сервисом, я получаю следующую ошибку:

Ошибка 1053: служба не ответила на запрос запуска или управления своевременно.

Окружающая среда: Windows 7 Enterprise 64bit MongoDB: 1.6.3 версия pdfile 4.5

mongodb,windows-services,

57

Ответов: 22


124

Вы проверили, что вы регистрируетесь, чтобы увидеть настоящую проблему?

Я предлагаю извлечь Монгольскую установку c:mongodb.

Создайте c:mongodblogsи c:mongodbdatadbкаталоги.

Затем просмотрите c:mongodbinкаталог и запустите следующую команду, чтобы удалить службу (если вы ее установили!):

mongod --remove

Затем установите службу, указав каталоги журналов и данных:

mongod --logpath c:mongodblogsmongo.log --dbpath c:mongodbdatadb --directoryperdb --install

Затем, если возникла проблема с запуском службы, вы должны увидеть причину в указанном файле журнала.

Больше информации здесь .


17

Если вы не указали абсолютные пути к файлу для каталога данных или каталога журнала, вы получите ту же ошибку Windows, но не файл журнала.

Я использовал информацию из «Установить службу MongoDB в Windows 7», нажал на Webiyo, чтобы исправить зарегистрированные аргументы службы:

  1. Загрузите MongoDB и извлеките его на диск C: .
  2. Добавьте подкаталоги «данные» и «журналы» в каталог «C: mongodb165».
  3. Добавьте имя файла журнала «mongolog.txt» в «C: mongodb165 logs mongolog.txt».
  4. Измените каталог на «C: mongodb165 bin».
  5. Выполните следующую команду:

    mongod --install --rest a€“master a€“logpath=C:mongodb165logsmongolog.txt
    
  6. Откройте редактор реестра (regedit.exe), перейдите в HKEY_LOCAL_MACHINE> SYSTEM> CurrentControlSet> Services.

  7. Найдите ключ MongoDB и установите значение «ImagePath» для:

    C:mongodb165inmongod --service  --rest  --master  --logpath=C:mongodb165logsmongolog.txt  --dbpath=C:mongodb165data
    
  8. Сохраните изменения в реестре и выйдите из редактора реестра.

  9. Откройте ComponentServices, нажмите «Сервисы (локальные)» и найдите службу MongoDB. Начни это.
  10. Проверьте URL-адрес http: // localhost: 28017 /, чтобы проверить, что MongoDB возвращает статистику.

Я просто столкнулся с той же проблемой на моей машине Windows 7. Я выполнил указания в документах MongoDBs для установки, но это не позволило мне выполнить «net start MongoDB», если я не был в «C: ». Я не хотел возвращаться и переустанавливать MongoDB, чтобы следовать инструкциям, включенным в ссылку Webiyo, упомянутую выше. Если вы уже установили MongoDB в соответствии с их документами и хотите иметь возможность запускать «net start MongoDB», откуда бы ни была ваша директория проекта:

Перейдите в HKEY_LOCAL_MACHINE> SYSTEM> CurrentControlSet> услуги> MongoDB

Дважды щелкните ImagePath в столбце Имя

Вставьте следующий ImagePath (отредактируйте каталог папки и имена в соответствии с вашими потребностями):

C:mongodbinmongod.exe --service  --rest  --master  --logpath=C:mongodblogmongolog.txt  --dbpath=C:mongodbdatadb --config C:mongodbmongod.cfg

Обратите внимание: если вы скопируете это значение ImagePath и ваша папка «data» находится в каталоге mongodb вместо C: добавьте следующую строку в файл «mongod.cfg»: dbpath=C:mongodbdatadb

После этого, когда я запускаю «net stop MongoDB», я получаю сообщение «Ошибка системы 109. Труба была закончена». Вы можете это увидеть. Это сообщение было подробно обсуждено на jira.mongodb.org .

Чтобы сэкономить вам время на чтение всей дискуссии взад и вперед, пост Тада Маршалса подводит итог этой проблеме:

«... он отлично работал в версии 2.1.0, а позже изменения снова сломали его. Но да, вы получите это сообщение об ошибке в текущем коде.

Объясняется это тем, что mongod.exe выходит из потока обратного вызова, созданного диспетчером управления Windows, когда он вызывает нас из-за «net stop mongodb», и это прерывает канал RPC, который он использовал для создания потока обратного вызова. Нам нужно реорганизовать нашу логику выхода, чтобы избежать этого.

Сообщение об ошибке является единственным реальным эффектом этой проблемы; мы выходим из команды, чистым образом и сообщаем диспетчеру управления службами Windows, что мы остановлены, но затем команда «net» отображает сообщение об ошибке, потому что мы не возвращались из вызова RPC так, как ожидали нас ».


Для тех, кто может иметь такую ??же проблему в Windows Server 2012:

У меня только та же проблема с Mongo 3.0.3 на Windows Server 2012. Я не системный администратор, поэтому я не знаю, что они изменили для sc.exe. Я должен использовать

sc.exe create MongoDB binPath= "C:mongodbinmongod.exe --service --config=C:mongodbmongod.cfg" DisplayName= "MongoDB" start= "auto"

Это без "" как для двоичных, так и для конфигурационных файлов, по сравнению с тем, что находится на их веб-сайте.


4

Это шаги, которые я выполнил для установки mongoDB на Windows 7

  1. загрузите файл .msi с сайта mongodb -> https://www.mongodb.com/download-center?jmp=nav#community и запустите его

  2. Где бы ни загружался ваш mondoDb (как правило, в папке Program Files с диска c), перейдите в эту папку, и там, где находится папка bin в этой же папке, создайте папку с данными и папку журнала

3. Внутри папки данных создайте свою папку db

Структура будет выглядеть примерно так:

  1. Теперь откройте командную строку как администратор.

  2. измените путь к файлу и введите папку bin (в этом случае это будут c> программные файлы> MongoDB> bin>)

  3. Введите следующую команду: mongod --directoryperdb --dbpath «C: / Program Files MongoDB data» --logpath «C: Program Files MongoDB log mongo.log» --logappend --rest - устанавливать

  4. Это установит путь к журналу и базе данных. Наконец, запустите net start MongoDB . Надеюсь это поможет.

MongoDB, окна-услуги,
Похожие вопросы