Невозможно запустить MongoDB как сервис - PullRequest
61 голосов
/ 11 января 2011

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

"D:\Milvia Systems\Development\MongoDB\mongod.exe" --logpath "D:\Milvia Systems\Development\MongoDB\logs\DBLog.log" --logappend --dbpath "D:\Milvia Systems\Development\MongoDB\db" -vvv --reinstall

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

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

Среда: 64-разрядная версия Windows 7 Enterprise MongoDB: 1.6.3 pdfile версия 4.5

Ответы [ 23 ]

137 голосов
/ 12 января 2011

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

Я предлагаю распаковать установку Mongo в c:\mongodb.

Создайте каталоги c:\mongodb\logs и c:\mongodb\data\db.

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

mongod --remove

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

mongod --logpath c:\mongodb\logs\mongo.log --dbpath c:\mongodb\data\db --directoryperdb --install

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

Подробнее здесь .

17 голосов
/ 03 января 2012

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

Я использовал информацию из "УстановитьСлужба MongoDB в Windows 7 ", отправленная на Webiyo для исправления зарегистрированных аргументов службы:

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

    mongod --install --rest –master –logpath=C:\mongodb165\logs\mongolog.txt
    
  6. Откройте редактор реестра (regedit.exe), перейдите к HKEY_LOCAL_MACHINE → SYSTEM → CurrentControlSet → Services.

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

    C:\mongodb165\bin\mongod --service  --rest  --master  --logpath=C:\mongodb165\logs\mongolog.txt  --dbpath=C:\mongodb165\data
    
  8. Сохраните изменения в реестре и выйдите из редактора реестра.

  9. Откройте ComponentSerпороки, нажмите «Службы (локальные)» и найдите службу MongoDB.Запустите его.
  10. Проверьте по URL http://localhost:28017/, чтобы убедиться, что MongoDB возвращает статистику.
11 голосов
/ 09 апреля 2013

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

Перейдите в раздел HKEY_LOCAL_MACHINE> SYSTEM> CurrentControlSet> services> MongoDB

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

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

C:\mongodb\bin\mongod.exe --service  --rest  --master  --logpath=C:\mongodb\log\mongolog.txt  --dbpath=C:\mongodb\data\db --config C:\mongodb\mongod.cfg

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

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

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

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

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

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

5 голосов
/ 18 января 2017

Я выполнил эту команду:

C:\MongoDB\Server\3.4\bin>net start MongoDB

И получил это сообщение:

Служба не отвечает на функцию управления. Больше помощи можно получить, набрав NET HELPMSG 2186.

После некоторых проб и ошибок, я заметил, что после обучения я попросил назвать мой файл mongod.conf , но команда пыталась обратиться к mongod.cfg .

Как только я исправлю это имя и перезапущу команды,

C:\MongoDB\Server\3.4\bin>sc.exe delete MongoDB
[SC] DeleteService SUCCESS

C:\MongoDB\Server\3.4\bin>sc.exe create MongoDB binPath= "\"C:\MongoDB\Server\3.4\bin\mongod.exe\" --service --config=\"C:\MongoDB\Server\3.4\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
[SC] CreateService SUCCESS

C:\MongoDB\Server\3.4\bin>net start MongoDB
The MongoDB service is starting....
The MongoDB service was started successfully.

Служба начала нормально работать.

5 голосов
/ 29 мая 2015

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

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

sc.exe create MongoDB binPath= "C:\mongodb\bin\mongod.exe --service --config=C:\mongodb\mongod.cfg" DisplayName= "MongoDB" start= "auto"

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

4 голосов
/ 18 апреля 2017

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

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

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

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 --install

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

3 голосов
/ 06 октября 2018

Мой файл mongod.cfg содержал следующие две последние строки:

#snmp:
mp:

Я понятия не имею, почему там есть mp :.Но когда я вручную выполнил путь к изображению

C:\mongodb\bin\mongod.exe --config "C:\mongodb\bin\mongod.cfg" --service

в

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MongoDB

, я получил

c:\mongodb\bin>mongod /?C:\mongodb\bin\mongod.exe --config "C:\mongodb\bin\mongod.cfg" --service
Unrecognized option: mp
try 'mongod --help' for more information

Поэтому я прокомментировал его, и затем служба запустилась без какого-либопроблема.

3 голосов
/ 22 января 2018

Следующие работы с MongoDB 3.6.0

Убедитесь, что у вас есть следующие папки:

  • C: \ mongodb \ data
  • C: \ mongodb \ data \ db

Тогда вам понадобятся только следующие команды:

  • mongod --directoryperdb -dbpath C: \ mongodb \ data \ db --logpath C: \ mongodb \ log \ mongo.log --logappend --service --install
  • net start MongoDB
  • mongo
3 голосов
/ 17 февраля 2016

Проверьте, есть ли в вашем файле mongod.cfg вкладки.Удаление вкладок решило это за меня!

3 голосов
/ 03 апреля 2015

Для mongoDB 3.0 , Вам необходимо установить следующее в файле конфигурации.

logpath=E:\mongoDBdata\log\mongoDB.log
dbpath=E:\mongoDBdata\db

лог-путь должен заканчиваться файлом, а не папкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...