Jak mogę uruchomić MongoDB jako usługę Windows?


Odpowiedzi:


118

Myślę, że jeśli uruchomisz go z --installprzełącznikiem wiersza polecenia, zainstaluje go jako usługę systemu Windows.

mongod --install

Warto jednak najpierw przeczytać ten wątek . Wydaje się, że występują pewne problemy ze ścieżkami względnymi / bezwzględnymi podczas zapisywania odpowiedniego klucza rejestru.


7
W końcu udało mi się zainstalować, wykonując to: mongod.exe
service

3
Wydaje się, że to, co naprawdę musisz zrobić, to wpisać pełną ścieżkę w wierszu polecenia: c: \> c: \ mongodb \ bin \ mongod.exe --service. Pamiętaj jednak, aby uruchomić okno poleceń jako administrator (szczególnie na serwerze Windows), w przeciwnym razie UAC zostanie zablokowany.
JC Grubbs

2
ten pomysł może zaoszczędzić czas na konfiguracje maszyn devleopment gist.github.com/serdarb/5102848
Serdar

1
A po uruchomieniu z --install, będziesz musiałnet start MongoDB
John

17
Wymaga ścieżki pliku dziennika, możesz dodać ścieżkę db i ścieżkę pliku dziennika tak jak ten mongod --dbpath = "c: \ data \ db" --logpath = "c: \ data \ db \ log.txt" --install, After to musisz uruchomić Net Start MongoDB.
sivaram636

355

Po kilku godzinach prób w końcu to zrobiłem.

Upewnij się, że dodałeś <MONGODB_PATH>\binkatalog do zmiennej systemowejPATH

Najpierw wykonałem to polecenie:

D:\mongodb\bin>mongod --remove

Następnie wykonałem to polecenie po otwarciu wiersza polecenia jako administrator:

D:\mongodb\bin>mongod --dbpath=D:\mongodb --logpath=D:\mongodb\log.txt --install

Następnie w wierszu polecenia wykonaj:

services.msc

Poszukaj usługi MongoDB i kliknij przycisk Start.


UWAGA: Pamiętaj, aby uruchomić wiersz polecenia jako administrator.

Jeśli tego nie zrobisz, plik dziennika ( D:\mongodb\log.txtw powyższym przykładzie) będzie zawierał takie wiersze:

2016-11-11T15:24:54.618-0800 I CONTROL  [main] Trying to install Windows service 'MongoDB'
2016-11-11T15:24:54.618-0800 I CONTROL  [main] Error connecting to the Service Control Manager: Access is denied. (5)

a jeśli spróbujesz uruchomić usługę z konsoli innej niż administrator (tj. net start MongoDBlub Start-Service MongoDBw PowerShell), otrzymasz odpowiedź w następujący sposób:

System error 5 has occurred.
Access is denied.

albo to:

Start-Service : Service 'MongoDB (MongoDB)' cannot be started due to the following error: Cannot open MongoDB service
on computer '.'.
At line:1 char:1
+ Start-Service MongoDB
+ ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OpenError: (System.ServiceProcess.ServiceController:ServiceController) [Start-Service],
   ServiceCommandException
    + FullyQualifiedErrorId : CouldNotStartService,Microsoft.PowerShell.Commands.StartServiceComman

10
Możesz także uruchomić go net start MongoDBzamiast używać services.msc. ( mongodzalecił mi to.)
Joe

1
To zadziałało dla mnie. Ścieżka do pliku dziennika musi zostać utworzona ręcznie, jeśli jeszcze nie istnieje (w przykładzie użyłem ścieżki innej niż katalog mongo).
dgundersen

Początkowo Mongo zaczynało jako usługa, ale moja baza danych była pusta. Mogłem zobaczyć moją wcześniej istniejącą bazę danych, dodając \ data do ścieżki: mongod --dbpath = D: \ mongodb \ data
Jeremy Thille

„Pamiętaj, aby uruchomić wiersz polecenia jako administrator” - wykonał zadanie! Uruchomienie z normalnym pozwoleniem nie powoduje napisania żadnego ostrzeżenia, ale usługa nie została utworzona. Uprawnienia, uprawnienia, uprawnienia!
Dzoukr

1
Powinna być potwierdzona odpowiedź
Logan Wlv

63

nie tylko --install,

także potrzebuję --dbpathi--logpath

a po ponownym uruchomieniu systemu operacyjnego musisz ręcznie usunąć „mongod.lock


4
+1 za usunięcie pliku mongod.lock. Nadal wydaje się to stanowić problem z wersją 1.8.1 działającą w wersji 64-bitowej.
SethO

4
Lepiej nawet określić --config i zdefiniować ścieżkę dbp, ścieżkę logu i inne opcje.
Oleg

3
mongod.lockWindows 8 x64
Wygląda na

50

W przeciwieństwie do innych odpowiedzi będzie to ..

URUCHOM SERWIS AUTOMATYCZNIE NA PONOWNYM URUCHOMIENIU SYSTEMU

Zainstaluj MongoDB

Windows

(1) Zainstaluj MongoDB

(2) Dodaj bin do ścieżki

(3) Utwórz c: \ data \ db

(4) Utwórz c: \ data \ log

(5) Utwórz c: \ data \ mongod.cfg z zawartością ..

systemLog:
    destination: file
    path: c:\data\log\mongod.log
storage:
    dbPath: c:\data\db

(6) Aby utworzyć usługę, która uruchomi się automatycznie po ponownym uruchomieniu . URUCHOM JAKO ADMINISTRATOR ..

sc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe\" --service --config=\"C:\data\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"

(7) Uruchom usługę. URUCHOM JAKO ADMINISTRATOR ..

net start MongoDB

WAŻNE: Nawet jeśli powie to „Usługa MongoDB została pomyślnie uruchomiona”, może się nie powieść

Aby dwukrotnie sprawdzić otwórz Panel sterowania> Usługi, upewnij się, że stan usługi MongoDB to „Uruchomiony”

Jeśli nie, sprawdź przyczynę niepowodzenia w pliku dziennika w C: \ data \ log \ mongod.log

(Nie uruchamiaj MongoDB za pomocą Panelu sterowania> Usługi, użyj .. net start MongoDB)

(8) Na koniec zrestartuj komputer przy uruchomionym MongoDB, a on będzie nadal działał przy ponownym uruchomieniu

Jeśli kiedykolwiek chcesz to zabić ...

net stop MongoDB

sc.exe delete MongoDB

Dzięki pracował dla mnie, po prostu musiał zmienić 3.4do 3.6wersji tego poleceniasc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe\" --service --config=\"C:\data\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
guru_007

28

Poniższe kroki dotyczą systemu Windows.

Uruchom poniżej w trybie administracyjnym cmd

mongod --remove

Spowoduje to usunięcie istniejącej usługi MongoDB (jeśli istnieje).

mongod --dbpath "C:\data\db" --logpath "C:\Program Files\MongoDB\Server\3.4\bin\mongod.log" --install --serviceName "MongoDB"

Upewnij się, że ten C:\data\dbfolder istnieje

Otwórz usługi dzięki:

services.msc

Znajdź MongoDB -> Kliknij prawym przyciskiem myszy -> Start


1
Idealny! Drobna uwaga, foldery muszą istnieć (przynajmniej jeden dla dzienników).
Diego Jancic,

Drobne pytanie dotyczące sidenote: Czy plik też nie musi istnieć? Pamiętam niejasno brak samego (pustego) pliku, który przysparza mi problemów.
Fariz Fakkel

1
Idealne rozwiązanie.
sapatelbaps

21

Możesz użyć poniższego polecenia do uruchomienia mongodb jako usługi Windows

"C:\mongodb\bin\mongod" --bind_ip  yourIPadress  --logpath  "C:\data\dbConf\mongodb.log"  --logappend  --dbpath  "C:\data\db"  --port yourPortNumber --serviceName "YourServiceName" --serviceDisplayName "YourServiceName" --install 

Jeśli używasz mongodb z parametrami domyślnymi, możesz użyć tych wartości:

  • Twój adres IP: 127.0.0.1 lub localhost
  • yourPortNumber: 27017 (domyślny port) lub nie umieszczaj --port
  • serviceDisplayName: tylko jeśli prowadzisz więcej niż jedną usługę (od mongodb 1.8)

Więcej informacji na temat tego polecenia tutaj

http://www.mongodb.org/display/DOCS/Windows+Service



14

Ten skrypt PowerShell pobiera i instaluje MongoDB jako usługę Windows:

Set-ExecutionPolicy RemoteSigned

$mongoDbPath = "C:\MongoDB" 
$mongoDbConfigPath = "$mongoDbPath\mongod.cfg"
$url = "http://downloads.mongodb.org/win32/mongodb-win32-x86_64-2008plus-2.4.9.zip" 
$zipFile = "$mongoDbPath\mongo.zip" 
$unzippedFolderContent ="$mongoDbPath\mongodb-win32-x86_64-2008plus-2.4.9"

if ((Test-Path -path $mongoDbPath) -eq $True) 
{ 
  write-host "Seems you already installed MongoDB"
    exit 
}

md $mongoDbPath 
md "$mongoDbPath\log" 
md "$mongoDbPath\data" 
md "$mongoDbPath\data\db"

[System.IO.File]::AppendAllText("$mongoDbConfigPath", "dbpath=C:\MongoDB\data\db`r`n")
[System.IO.File]::AppendAllText("$mongoDbConfigPath", "logpath=C:\MongoDB\log\mongo.log`r`n")
[System.IO.File]::AppendAllText("$mongoDbConfigPath", "smallfiles=true`r`n")
[System.IO.File]::AppendAllText("$mongoDbConfigPath", "noprealloc=true`r`n")

$webClient = New-Object System.Net.WebClient 
$webClient.DownloadFile($url,$zipFile)

$shellApp = New-Object -com shell.application 
$destination = $shellApp.namespace($mongoDbPath) 
$destination.Copyhere($shellApp.namespace($zipFile).items())

Copy-Item "$unzippedFolderContent\*" $mongoDbPath -recurse

Remove-Item $unzippedFolderContent -recurse -force 
Remove-Item $zipFile -recurse -force

& $mongoDBPath\bin\mongod.exe --config $mongoDbConfigPath --install

& net start mongodb

10

To była jedyna rzecz, która działała dla mnie. Ponieważ wszystko musiało być ścieżką absolutną:

C:\Program Files\MongoDB\Server\3.2\bin>mongod --install --dbpath=c:/data/db --logpath=c:/data/logs/log.txt

Musiałem też to uruchomić admin cmd


7

Zalecany sposób mongod --installpowoduje błąd:

2015-12-03T18:18:28.896+0100 I CONTROL  --install has to be used with a log file for server output

Po zainstalowaniu mongodb C:\mongodbmusisz po prostu dodać ścieżkę dziennika:

mongod --install --logpath C:\mongodb\logs\mongo.log

Ścieżka do pliku dziennika musi istnieć i musi być bezwzględną ścieżką systemu Windows. Następnie uruchom usługę MongoDB, wpisując:

net start MongoDB

5

Rozważ użycie

mongod --install --rest --master

rozważ zaktualizowanie swojej odpowiedzi odpowiedzią ruby ​​(Twoja jest niekompletna)
danielpopa

5

Praca na Mongo DB: 3.6

(1) Zainstaluj MongoDB

(2) Dodaj bin do zmiennej ścieżki środowiskowej

(3) Utwórz c:\data\db

(4) Utwórz c:\data\mongod.log

(5) Uruchom poniżej polecenia w binfolderze

. \ mongod.exe --install --logpath c: \ data \ mongod.log --logappend --bind_ip 12 7.0.0.1 --dbpath c: \ data \ db

(6) Aby uruchomić mongo db jako usługę

start netto MongoDB

(7) Na koniec uruchom mongow wierszu polecenia, aby sprawdzić, czy powłoka mongo jest otwarta, czy nie.


4
1) echo logpath=F:\mongodb\log\mongo.log > F:\mongodb\mongod.cfg

2) dbpath=F:\mongodb\data\db [add this to the next line in mongod.cfg]

C:\>F:\mongodb\bin\mongod.exe config F:\mongodb\mongod.cfg install

Odniesienie


4

Oto, co zadziałało dla mnie:

sc.exe create MongoDB binPath= "d:\MongoDB\bin\mongod.exe --service --config=d:\MongoDB\bin\mongod.config" displayname= "MongoDB 2.6 Standard" start= "auto"

ucieczka przed binPath nie powiodła się, jak opisano w dokumentacji Mongo

Nie powiodło się:

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

1
Uruchom cmd jako administrator i uruchom następujące polecenie: sc.exe utwórz plik MongoDB binPath = "d: \ MongoDB \ bin \ mongod.exe --service --config = d: \ MongoDB \ bin \ mongod.config" displayname = "MongoDB 2.6 Standardowe „start =” auto ”
Akash5288

4

Najprostszym sposobem jest

  1. Utwórz folder C:\data\db
  2. Utwórz plik C:\data\db\log.txt
  3. Otwórz wiersz polecenia jako „Uruchom jako administrator” i upewnij się, że ścieżka katalogu bin mogodb jest poprawna i zapisz

    C:\Program Files\MongoDB\Server\3.4\bin> mongod.exe --install mongod --dbpath="c:\data\db" --logpath="c:\data\db\log.txt" 
  4. Uruchom usługę mongodb:

    net run MongoDB

„C: \ Program” nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne, program operacyjny lub plik wsadowy.
151291,

4

Praca na MongoDB 3.4 [Windows]

  • Utwórz katalog C: / mongodb / data
  • Utwórz plik w C: /mongodb/mongodb.config przy użyciu tej konfiguracji:

    storage:
        engine: wiredTiger
        dbPath: "C:/mongodb/data"
        directoryPerDB: true
        journal:
            enabled: true
    systemLog:
        destination: file
        path: "C:/mongodb/data/mongod.log"
        logAppend: true
        timeStampFormat: iso8601-utc
    net:
        bindIp: 127.0.0.1
        port: 27017
        wireObjectCheck : false
  • Aby zainstalować MongoDb jako usługę, uruchom to polecenie w PowerShell z uprawnieniami administratora

    mongod --config = "C: \ mongodb \ mongodb.config" --install --service

  • Otwórz Services.msc i poszukaj MongoDb, a następnie uruchom go


3

W przypadku wersji 2.4.3 (bieżąca wersja na dzień publikacji) utwórz plik konfiguracyjny, a następnie wykonaj następujące czynności:

C:\MongoDB\bin\mongod.exe --config C:\MongoDB\mongod.cfg --service


3

Obecnie (do wersji 2.4.4), jeśli jakakolwiek ścieżka (dbpath / logpath / config) zawiera spacje, usługa nie uruchomi się i wyświetli błąd: „Usługa nie odpowiada na funkcję sterowania”.


2

Jestem w wersji 2.4.9 i używam pliku konfiguracyjnego. Usługa nie uruchomi się, dopóki nie otoczę znaku równości w pliku konfiguracyjnym spacjami:

dbpath = D:\Mongo data
logpath = C:\mongodb\logs\mongo.log 
logappend = true

Pierwotnie miałem:

logpath=C:\mongodb\logs\mongo.log 

Odkryłem również, że podczas instalowania usługi musisz użyć bezwzględnej ścieżki do pliku konfiguracyjnego, np .:

c:\mongodb\bin\>mongodb.exe C:\mongodb\bin\mongod.conf --install

Nie ulegaj pokusie umieszczania odwróconych przecinków wokół ścieżki db ze spacjami. Wygląda na to, że usługa uruchomi się po uruchomieniu Net Start MongoDB, ale zakończy się. Sprawdź pliki dziennika, aby potwierdzić, że usługa naprawdę się uruchomiła.


2

Uruchom „cmd.exe” jako administrator, a następnie uruchom „sc.exe”, aby dodać nową usługę Windows.

na przykład:

sc.exe create MongoDB binPath= "c:\program files\mongodb\server\3.2\bin\mongod.exe"

2

Odkryłem, że powinieneś przekazać: dbpath, config i logfile do mongod z flagą install

przykład:

mongod --dbpath=c:\data\db --config=c:\data\db\config.cfg --logpath=c:\data\db\log.txt --install 

uwaga: Mam zmienną mongod w mojej zmiennej path.

Możesz kontrolować usługę za pomocą:

net start mongodb
net stop  mongodb 

2

Oto kroki, aby zainstalować MongoDB jako usługę systemu Windows:

  1. Utwórz katalog dziennika, np C:\MongoDB\log

  2. Utwórz katalog db, np C:\MongoDB\db

  3. Przygotuj plik konfiguracyjny z następującymi wierszami

    dbpath=C:\MongoDB\db

    logpath=C:\MongoDB\log

    Umieść plik konfiguracyjny o nazwie mongod.cfg w folderze „C: \ MongoDB \”

  4. Następujące polecenie zainstaluje na twoim komputerze usługę Windows sc.exe create MongoDB binPath= "\"C:\MongoDB\Server\3.4\bin\mongod.exe\" --service --config=\"C:\MongoDB\mongod.cfg\" DisplayName= "MongoDB 3.4" start= "auto"

  5. Po uruchomieniu tego polecenia otrzymasz [SC] CreateService SUCCESS

  6. Uruchom następujące polecenie w wierszu polecenia

    net start MongoDB



1

Ta odpowiedź jest dla tych, którzy już zainstalowali mongo DB za pomocą instalatora MSI.

Załóżmy, że domyślną zainstalowaną lokalizacją jest „C: \ Program Files \ MongoDB \ Server \ 3.2 \ bin”

Kroki, aby uruchomić Mongo jako usługę okienną

  1. Otwórz wiersz polecenia jako administrator
  2. Wpisz cd C:\Program Files\MongoDB\Server\3.2\bin(sprawdź ścieżkę poprawnie, ponieważ może być zainstalowana inna wersja, a nie 3.2).
  3. Naciśnij enter
  4. Rodzaj net start MongoDB
  5. Naciśnij enter
  6. Naciśnij Windows + R, wpisz services.msci sprawdź, czy Mongo działa jako usługa.

Miej właściwą ścieżkę, ale dostaję błąd: System error 2 has occurred. The system cannot find the file specified.wypróbowałem także mongod, mongodb.
151291,

0
mongod --config "C:\Program Files\MongoDB\Server\3.6\mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary"

0
  1. sprawdź usługi systemu Windows

    jeśli masz usługę mongo, usuń ją, uruchamiając poniższe polecenie
    mongod --remove

  2. utwórz plik mongo.cfg z poniższą zawartością

    systemLog:
    miejsce docelowe:
    ścieżka pliku : c: \ data \ log \ mongod.log
    pamięć:
    dbPath: c: \ data \ db

    ścieżka: gdzie chcesz przechowywać dane dziennika
    dbPath: katalog bazy danych

  3. następnie uruchom poniższe polecenie

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

    binPath:
    konfiguracja katalogu instalacyjnego mongodb : adres pliku .cfg
    DisplayName: nazwa usługi

  4. uruchomić usługę

    net start MongoDB

teraz wszystkie rzeczy są skończone. ciesz się tym


0

W moim przypadku tworzę plik mongod.cfg obok pliku mongd.exe z następującą zawartością.

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: D:\apps\MongoDB\Server\4.0\data
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path:  D:\apps\MongoDB\Server\4.0\log\mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0


#processManagement:

#security:

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:

Następnie uruchamiam oba polecenia, aby utworzyć usługę.

D:\apps\MongoDB\Server\4.0\bin>mongod --config D:\apps\MongoDB\Server\4.0\bin\mongod.cfg --install

D:\apps\MongoDB\Server\4.0\bin>net stop mongodb
The MongoDB service is stopping.
The MongoDB service was stopped successfully.


D:\apps\MongoDB\Server\4.0\bin>mongod --remove
2019-04-10T09:39:29.305+0800 I CONTROL  [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2019-04-10T09:39:29.309+0800 I CONTROL  [main] Trying to remove Windows service 'MongoDB'
2019-04-10T09:39:29.310+0800 I CONTROL  [main] Service 'MongoDB' removed

D:\apps\MongoDB\Server\4.0\bin>
D:\apps\MongoDB\Server\4.0\bin>sc.exe create MongoDB binPath= "\"D:\apps\MongoDB\Server\4.0\bin\mongod.exe\" --service --config=\"D:\apps\MongoDB\Server\4.0\bin\mongod.cfg\""
[SC] CreateService SUCCESS

D:\apps\MongoDB\Server\4.0\bin>net start mongodb
The MongoDB service is starting..
The MongoDB service was started successfully.

D:\apps\MongoDB\Server\4.0\bin>

Poniższe informacje są niepoprawne, należy pamiętać, że wymagane znaki zapytania są wymagane.

D:\apps\MongoDB\Server\4.0\bin>sc.exe create MongoDB binPath= "D:\apps\MongoDB\Server\4.0\bin\mongod --config D:\apps\MongoDB\Server\4.0\bin\mongod.cfg"
[SC] CreateService SUCCESS

D:\apps\MongoDB\Server\4.0\bin>net start mongodb
The service is not responding to the control function.

More help is available by typing NET HELPMSG 2186.


D:\apps\MongoDB\Server\4.0\bin>

-1

Plz wypróbuj kroki w Mongo DB: 3.6 i Windows 10

  1. mongod --remove
  2. mongod --dbpath=C:/data/db --port 27017 --logpath C:/data/log/log.txt --service
  3. mongod --dbpath=C:/data/db --port 27017 --logpath C:/data/log/log.txt --install
  4. net start MongoDB

MongoDB 4.0 działa dobrze na 64-bitowym systemie Windows ... O ile nie spróbujesz go zabezpieczyć, dodając wiersz „autoryzacja: włączona” do ustawienia „Bezpieczeństwo” w mongod.cfg. Następnie system Windows zgłasza komunikat o błędzie „usługa nie uruchomiła się w odpowiednim czasie”. Masz pomysł, co się tutaj dzieje?
David Edwards,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.