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

Я уже несколько месяцев разрабатываю для 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: служба не ответила на запуск или управление запросить своевременно.

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

4b9b3361

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

Я предлагаю извлечь установку 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

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

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

115
ответ дан 12 янв. '11 в 0:58
источник

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

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

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

    mongod --install --rest –master –logpath=C:\mongodb165\logs\mongolog.txt
    
  • Откройте редактор реестра (regedit.exe), перейдите в HKEY_LOCAL_MACHINE → СИСТЕМА → CurrentControlSet → Услуги.

  • Найдите ключ MongoDB и установите для параметра "ImagePath" значение:

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

  • Откройте ComponentServices, нажмите "Сервисы (локальные)" и найдите службу MongoDB. Запустите его.
  • Проверьте URL http://localhost:28017/, чтобы проверить, что MongoDB возвращает статистику.
17
ответ дан 03 янв. '12 в 19:44
источник

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

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

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

Вставить в следующий 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 так, как ожидали нас ".

11
ответ дан 08 апр. '13 в 23:20
источник

Другим, у кого может быть такая же проблема на 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"

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

5
ответ дан 29 мая '15 в 21:32
источник

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

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.

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

3
ответ дан 18 янв. '17 в 10:02
источник

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

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

  • Где бы вы загрузили ваш 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 --install

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

3
ответ дан 18 апр. '17 в 20:55
источник

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

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

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

3
ответ дан 03 апр. '15 в 8:33
источник

Для версии 2.6 вы должны создать папки/data/db/и/log/, на которые указывает mongo.cfg. MongoDB не будет делать этого сам и будет отбрасывать эту ошибку в ответ, когда запускается как служба.

2
ответ дан 11 марта '15 в 20:20
источник

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

2
ответ дан 17 февр. '16 в 2:48
источник

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

В этом случае служба не сможет создать файл блокировки.

Служба mongod ведет себя плохо в этой ситуации и переходит в цикл, запускающий процесс, который немедленно бросает необработанное исключение, сбой и т.д. файл журнала воссоздается каждый раз, когда процесс запускается, поэтому вам нужно быстро его схватить если вы хотите увидеть ошибку.

пользователем по умолчанию для служб Windows будет localhost\system. поэтому исправление заключается в том, чтобы этот пользователь мог записывать в ваш каталог db или запускать службу в качестве другого пользователя, который может.

2
ответ дан 15 авг. '12 в 23:08
источник

убедитесь, что вы открыли командную строку с правами "запускать как администратора" в правом щелчке, прежде чем вводить все вещи mongod.

2
ответ дан 09 февр. '17 в 4:00
источник

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

0
ответ дан 02 сент. '17 в 2:00
источник

Проверьте, запущен ли уже экземпляр процесса mongod. Если да, эта служба не запускается, потому что C:\data\db\mongod.lock будет использоваться ею.

И чтобы запустить MongoDB как службу, этот файл не должен использоваться каким-либо процессом.

0
ответ дан 05 мая '17 в 14:30
источник

Потратьте полчаса на отладку... Наконец я обнаружил, что перед атрибутом "отдых" есть одиночная тире.

mongodb as service

0
ответ дан 13 июля '17 в 1:03
источник

Просто попробуйте запустить mongod.exe локально в командной строке, вы можете получить здесь исключение, которое вызовет mongod и попытается его решить. В моем случае это было небольшое свободное место на локальном диске, поэтому я просто меняю расположение каталогов и меняю файл Mongocofig, и теперь он работает нормально.

0
ответ дан 04 июля '14 в 18:34
источник

Если вы посмотрите в подробностях службы, вы увидите, что команда запуска службы - это что-то вроде:

"C:\Program Files\MongoDB\bin\mongod" --config  C:\Program Files\MongoDB\mongod.cfg  --service 

Команда MongoDB забыла добавить " вокруг опции --config. Поэтому просто отредактируйте реестр, чтобы исправить его, и он будет работать.

0
ответ дан 23 окт. '14 в 12:34
источник

У меня была такая же проблема на Windows 8.1

Решение, которое работало для меня, это правильно указать путь к файлу конфигурации.

Переход к HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > services > MongoDB > imagePath означает следующее:

"C:\Program Files\MongoDB 2.6 Standard\bin\mongod.exe" --config mongod.cfg --service

Затем просто я исправил путь к файлу конфигурации, чтобы соответствовать моему фактическому пути:

"C:\Program Files\MongoDB 2.6 Standard\bin\mongod.exe" --config "d:\mongodb\mongod.cfg" --service
0
ответ дан 11 февр. '15 в 15:18
источник

Не забудьте создать базу данных перед запуском службы

C:\>"C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe" --dbpath d:\MONGODB\DB
2016-10-13T18:18:23.135+0200 I CONTROL  [main] Hotfix KB2731284 or later update is installed, no need to zero-out data files
2016-10-13T18:18:23.147+0200 I CONTROL  [initandlisten] MongoDB starting : pid=4024 port=27017 dbpath=d:\MONGODB\DB 64-bit host=mongosvr
2016-10-13T18:18:23.148+0200 I CONTROL  [initandlisten] targetMinOS: Windows 7/Windows Server 2008 R2
2016-10-13T18:18:23.149+0200 I CONTROL  [initandlisten] db version v3.2.8
2016-10-13T18:18:23.149+0200 I CONTROL  [initandlisten] git version: ed70e33130c977bda0024c125b56d159573dbaf0
2016-10-13T18:18:23.150+0200 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.1p-fips 9 Jul 2015
2016-10-13T18:18:23.151+0200 I CONTROL  [initandlisten] allocator: tcmalloc
2016-10-13T18:18:23.151+0200 I CONTROL  [initandlisten] modules: none
2016-10-13T18:18:23.152+0200 I CONTROL  [initandlisten] build environment:
2016-10-13T18:18:23.152+0200 I CONTROL  [initandlisten]     distmod: 2008plus-ssl
2016-10-13T18:18:23.153+0200 I CONTROL  [initandlisten]     distarch: x86_64
2016-10-13T18:18:23.153+0200 I CONTROL  [initandlisten]     target_arch: x86_64
2016-10-13T18:18:23.154+0200 I CONTROL  [initandlisten] options: { storage: { dbPath: "d:\MONGODB\DB" } }
2016-10-13T18:18:23.166+0200 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=8G,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2016-10-13T18:18:23.722+0200 I NETWORK  [HostnameCanonicalizationWorker] Starting hostname canonicalization worker
2016-10-13T18:18:23.723+0200 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory 'd:/MONGODB/DB/diagnostic.data'
2016-10-13T18:18:23.895+0200 I NETWORK  [initandlisten] waiting for connections on port 27017

Затем вы можете остановить процесс Control-C

2016-10-13T18:18:44.787+0200 I CONTROL  [thread1] Ctrl-C signal
2016-10-13T18:18:44.788+0200 I CONTROL  [consoleTerminate] got CTRL_C_EVENT, will terminate after current cmd ends
2016-10-13T18:18:44.789+0200 I FTDC     [consoleTerminate] Shutting down full-time diagnostic data capture
2016-10-13T18:18:44.792+0200 I CONTROL  [consoleTerminate] now exiting
2016-10-13T18:18:44.792+0200 I NETWORK  [consoleTerminate] shutdown: going to close listening sockets...
2016-10-13T18:18:44.793+0200 I NETWORK  [consoleTerminate] closing listening socket: 380
2016-10-13T18:18:44.793+0200 I NETWORK  [consoleTerminate] shutdown: going to flush diaglog...
2016-10-13T18:18:44.793+0200 I NETWORK  [consoleTerminate] shutdown: going to close sockets...
2016-10-13T18:18:44.795+0200 I STORAGE  [consoleTerminate] WiredTigerKVEngine shutting down
2016-10-13T18:18:45.116+0200 I STORAGE  [consoleTerminate] shutdown: removing fs lock...
2016-10-13T18:18:45.117+0200 I CONTROL  [consoleTerminate] dbexit:  rc: 12

Теперь ваша база данных подготовлена, и вы можете запустить службу, используя

C:\>net start MongoDB
The MongoDB service is starting.
The MongoDB service was started successfully.
0
ответ дан 13 окт. '16 в 19:30
источник

Я начал следовать учебному курсу в блоге, который требовал MongoDB. В нем были инструкции по загрузке и настройке службы. Но по какой-то причине команда для запуска службы Windows в этом учебнике не работала. Поэтому я пошел в документы MongoDB и попробовал запустить эту команду, как указано на mongodb.org -

Команда strting mongodb service- sc.exe создать MongoDB binPath = "\" C:\MongoDB\bin\mongod.exe\ "--service --config = \" C:\MongoDB\bin\mongodb\mongod.cfg\ "DisplayName =" MongoDB "start =" авто "

Я получил это сообщение: [SC] CreateService SUCCESS

Тогда я запустил это: net start MongoDB

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

The service is not responding to the control function.

More help is available by typing NET HELPMSG 2186.

Я создаю файл с именем 'mongod.cfg' в 'C:\MongoDB\bin\mongodb \' Как только я добавил этот файл и перезапустил команду "net start MongoDB", служба начала работать нормально.

Надеюсь, что это поможет.

-1
ответ дан 07 мая '15 в 16:42
источник

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

2015-11-11T21: 53: 54.717 + 0500 E JOURNAL [initandlisten] Недостаточно свободного места для файлов журнала 2015-11-11T21: 53: 54.717 + 0500 я ЖУРНАЛ [initandlisten] Пожалуйста, сделайте не менее 3379 МБ в C:\wamp\bin\mongodb\data\db\journal или использовать --smallfiles

Все, что мне нужно было сделать, это очистить место и снова запустить службу. Работал для меня. Итак, все, что вам нужно, это проверить файл журнала и решить проблему соответственно.

-1
ответ дан 11 нояб. '15 в 20:13
источник