MongoDB'yi Windows hizmeti olarak nasıl çalıştırabilirim?


Yanıtlar:


118

Bence --installkomut satırı anahtarıyla çalıştırırsanız , Windows Servisi olarak yükler.

mongod --install

İlk önce bu konuyu okumaya değer olabilir . İlgili kayıt defteri anahtarı yazıldığında, göreli / mutlak yollarla ilgili bazı sorunlar var gibi görünüyor.


7
nihayet bu yürütmek ile yüklemeyi başardı: mongod.exe
hizmet

3
Gerçekten yapmanız gereken komut satırına tam yolu girmek gibi görünüyor: c: \> c: \ mongodb \ bin \ mongod.exe --service. Ancak, komut penceresini yönetici olarak çalıştırdığınızdan emin olun (özellikle Windows sunucusunda), aksi takdirde UAC tarafından engellenirsiniz.
JC Grubbs


1
--İnstall ile koştuktan sonranet start MongoDB
John

17
Bir günlük dosyası yolu gerektirir, bu mongod --dbpath = "c: \ data \ db" --logpath = "c: \ data \ db \ log.txt" --install, After gibi dbpath ve logfile yolunu ekleyebilirsiniz. Bu net start MongoDB çalıştırmak gerekir.
sivaram636

355

Birkaç saat denedikten sonra sonunda yaptım.

<MONGODB_PATH>\binDizini sistem değişkenine eklediğinizden emin olunPATH

İlk önce bu komutu yerine getirdim:

D:\mongodb\bin>mongod --remove

Sonra komut istemini yönetici olarak açtıktan sonra bu komutu yürüttüm:

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

Bundan sonra komut isteminde şu komutu uygulayın:

services.msc

MongoDB servisini arayın ve başlat'a tıklayın.


NOT: Komut istemini yönetici olarak çalıştırdığınızdan emin olun.

Bunu yapmazsanız, günlük dosyanız ( D:\mongodb\log.txtyukarıdaki örnekte) aşağıdaki gibi satırlar içerir:

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)

ve hizmeti yönetici olmayan bir konsoldan (ör. net start MongoDBveya Start-Service MongoDBPowerShell'de) başlatmaya çalışırsanız , aşağıdaki gibi bir yanıt alırsınız:

System error 5 has occurred.
Access is denied.

veya bu:

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
Kullanmak net start MongoDByerine ile de başlatabilirsiniz services.msc. ( mongodbunu bana tavsiye etti.)
Joe

1
Bu benim için çalıştı. Günlük dosyasının yolu zaten yoksa el ile oluşturulmalıdır (örnekte mongo dizini dışında bir yol kullandım).
dgundersen

İlk başta, Mongo bir hizmet olarak başladı, ancak veritabanım boştu. Önceden varolan veritabanımı yalnızca yola \ veri ekleyerek görebiliyordum: mongod --dbpath = D: \ mongodb \ data
Jeremy Thille

"Komut istemini yönetici olarak çalıştırdığınızdan emin olun" - işi yaptı! Normal izinle çalıştırmak herhangi bir uyarı yazmaz, ancak hizmet yaratılmaz. İzinler, izinler, izinler!
Dzoukr

1
Doğrulanmış cevap olmalı
Logan Wlv

63

sadece --install,

ayrıca ihtiyaç --dbpathve--logpath

ve işletim sistemini yeniden başlattıktan sonra "mongod.lock " dosyasını manuel olarak silmeniz gerekir


4
Mongod.lock dosyasını silmek için +1. Bu hala 1.8 bit 64 bit üzerinde çalışırken bir sorun gibi görünüyor.
SethO

4
--Config belirtmek ve orada dbpath, logpath ve diğer seçenekleri tanımlamak daha iyidir.
Oleg

3
mongod.lockWindows 8 x64
Görünüşe

50

Diğer cevapların aksine bu olacak ..

HİZMETİ OTOMATİK OLARAK SİSTEM YEDEKLEME / YENİDEN BAŞLATMA

MongoDB Kurulumu

pencereler

(1) MongoDB'yi yükleyin

(2) Yola çöp kutusu ekle

(3) c: \ data \ db oluşturun

(4) c: \ data \ log oluştur

(5) İçindekilerle c: \ data \ mongod.cfg oluşturun ..

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

(6) Yeniden başlatıldığında otomatik olarak başlayacak bir servis oluşturmak için .. YÖNETİCİ OLARAK ÇALIŞTIR ..

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) Hizmeti başlat .. YÖNETİCİ OLARAK ÇALIŞTIR ..

net start MongoDB

ÖNEMLİ: Bu 'MongoDB hizmeti başarıyla başlatıldı' yazsa bile başarısız olabilir

Açık Denetim Masası> Hizmetler'i tekrar kontrol etmek için MongoDB hizmetinin durumunun 'Çalışıyor' olduğundan emin olun

Değilse, hata nedeniniz için C: \ data \ log \ mongod.log adresindeki günlük dosyanızı kontrol edin ve düzeltin

(MongoDB'yi Denetim Masası> Hizmetler aracılığıyla başlatmayın, kullanın .. net start MongoDB)

(8) Son olarak, MongoDB çalışırken makinenizi yeniden başlatın ve yeniden başlatma sırasında da çalışmaya devam edecek

Eğer öldürmek istersen ..

net stop MongoDB

sc.exe delete MongoDB

teşekkürler benim için çalıştı, ben sadece bu komut sürümüne değiştirmek 3.4zorunda3.6sc.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

Aşağıdaki adımlar Windows için geçerlidir.

Aşağıda yönetici olarak çalıştırın cmd

mongod --remove

Bu, mevcut MongoDB hizmetini (varsa) kaldıracaktır.

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

C:\data\dbKlasörün var olduğundan emin olun

Açık servisler:

services.msc

MongoDB'yi Bul -> Sağ tıklayın -> Başlat


1
Mükemmel! Küçük not, klasörler (en azından günlükler için) var olmalıdır.
Diego Jancic

Sidenote ile ilgili küçük bir soru: Dosyanın da var olması gerekmez mi? Bana boş problem (boş) dosyanın olmadığını hatırlıyorum.
Fariz Fakkel

1
Mükemmel çözüm.
sapatelbaps

21

Mongodb'u bir Windows hizmeti olarak çalıştırmak için aşağıdaki komutu kullanabilirsiniz

"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 

Mongodb'u varsayılan parametrelerle kullanırsanız, şu değerleri kullanabilirsiniz:

  • Adresiniz: 127.0.0.1 veya localhost
  • yourPortNumber: 27017 (varsayılan bağlantı noktası) veya koymayın - bağlantı noktası
  • serviceDisplayName: yalnızca birden fazla hizmet çalıştırırsanız (mongodb 1.8'den beri)

Burada bu komut hakkında daha fazla bilgi var

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



14

Bu PowerShell Komut Dosyası MongoDB'yi Windows Hizmeti olarak İndirir ve Kurur:

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

Benim için işe yarayan tek şey buydu. Her şey mutlak bir yol olmalıydı:

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

Ayrıca onu çalıştırmak zorunda kaldım admin cmd


7

Önerilen yol mongod --installhatayla sonuçlanır:

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

Mongodb'u kurduktan sonra C:\mongodbbasitçe logpath eklemeniz gerekir:

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

Günlük dosyasının yolu mevcut olmalı ve mutlak bir Windows yolu olmalıdır. Sonra MongoDB hizmetini şunu yazarak başlatın:

net start MongoDB


5

Mongo DB üzerinde çalışma: 3.6

(1) MongoDB'yi yükleyin

(2) Ortam yolu değişkenine bin ekleme

(3) Yarat c:\data\db

(4) Yarat c:\data\mongod.log

(5) binKlasördeki komutun altında çalıştır

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

(6) Mongo db'yi hizmet olarak başlatmak için

net başlangıç ​​MongoDB

(7) Son olarak mongomongo kabuğunun açık olup olmadığını kontrol etmek için komut satırında çalıştırın .


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

Referans


4

Benim için işe yarayan buydu:

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

binPath'ten kaçmak, Mongo belgelerinde açıklandığı gibi benim için başarısız oluyordu

Başarısız oldu:

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
Cmd'yi yönetici olarak çalıştırın ve bu komutu çalıştırın: sc.exe create MongoDB binPath = "d: \ MongoDB \ bin \ mongod.exe --service --config = d: \ MongoDB \ bin \ mongod.config" displayname = "MongoDB 2.6 Standart "start =" otomatik "
Akash5288

4

En basit yol,

  1. Klasör oluşturun C:\data\db
  2. Dosya oluştur C:\data\db\log.txt
  3. Komut istemini "Yönetici Olarak Çalıştır" olarak açın ve mogodb bin dizin yolunun doğru olduğundan emin olun ve yazın

    C:\Program Files\MongoDB\Server\3.4\bin> mongod.exe --install mongod --dbpath="c:\data\db" --logpath="c:\data\db\log.txt" 
  4. Mongodb hizmetini başlat:

    net run MongoDB

'C: \ Program' dahili veya harici bir komut, çalıştırılabilir program veya toplu iş dosyası olarak tanınmıyor.
151291

4

MongoDB 3.4 üzerinde çalışma [Windows]

  • Dizin yarat: / mongodb / data
  • Bu yapılandırmayı kullanarak C: /mongodb/mongodb.config dosyasında bir dosya oluşturun:

    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
  • MongoDb'yi hizmet olarak yüklemek için bu komutu yönetici gücüyle powershell'de çalıştırın

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

  • Services.msc dosyasını açın ve MongoDb dosyasını bulun, ardından başlatın


3

2.4.3 sürümü için (gönderme tarihinden itibaren geçerli sürüm), bir yapılandırma dosyası oluşturun ve aşağıdakileri yürütün:

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


3

Şu anda (sürüm 2.4.4'e kadar), herhangi bir yol (dbpath / logpath / config) boşluk içeriyorsa, hizmet başlatılmaz ve hatayı gösterir: "Hizmet, denetim işlevine yanıt vermiyor".


2

Sürüm 2.4.9 ve bir yapılandırma dosyası kullanıyorum. Yapılandırma dosyasında eşittir işaretini boşluklarla çevrilinceye kadar hizmet başlamazdı:

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

Başlangıçta vardı:

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

Ayrıca hizmeti yüklerken, yapılandırma dosyası için mutlak bir yol kullanmanız gerektiğini keşfettim:

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

Boşluklu bir dbath çevresinde ters virgüller koymak için cazip olmayın . Net start MongoDB yürüttüğünüzde hizmet başlatılıyor gibi görünecek ancak sonlandırılacaktır. Hizmetin gerçekten başlatıldığını doğrulamak için günlük dosyalarına bakın.


2

Yönetici olarak "cmd.exe" yi çalıştırın ve sonra yeni bir Windows hizmeti eklemek için "sc.exe" dosyasını çalıştırın.

Örneğin:

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

2

Eğer kurulum bayrağı ile mongod için dbpath, config ve logfile geçmek gerektiğini buldum

misal :

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

Not: Yol değişkenimde mongod yolum var.

Hizmeti aşağıdakilerle kontrol edebilirsiniz:

net start mongodb
net stop  mongodb 

2

MongoDB'yi Windows Hizmeti olarak yükleme adımları şunlardır:

  1. Bir günlük dizini oluşturun, ör. C:\MongoDB\log

  2. Bir db dizini oluşturun, ör. C:\MongoDB\db

  3. Aşağıdaki satırları içeren bir yapılandırma dosyası hazırlayın

    dbpath=C:\MongoDB\db

    logpath=C:\MongoDB\log

    Mongod.cfg isimli yapılandırma dosyasını "C: \ MongoDB \" klasörüne yerleştirin

  4. Aşağıdaki komut, Windows Hizmetini 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. Bu komutu çalıştırdığınızda, [SC] CreateService SUCCESS

  6. Komut İsteminde aşağıdaki komutu çalıştırın

    net start MongoDB



1

Bu cevap, MSI yükleyicisini kullanarak mongo DB'yi zaten yüklemiş olanlar içindir.

Diyelim ki varsayılan kurulu konumunuz "C: \ Program Files \ MongoDB \ Server \ 3.2 \ bin"

Mongo'yu pencere hizmeti olarak çalıştırma adımları

  1. Komut istemini yönetici olarak aç
  2. Şunu yazın cd C:\Program Files\MongoDB\Server\3.2\bin(3.2 değil, farklı bir sürüm yüklü olabilir, yolu doğru kontrol edin).
  3. Enter tuşuna basın
  4. tip net start MongoDB
  5. Enter tuşuna basın
  6. Windows + R tuşlarına basın, services.mscMongo'nun bir hizmet olarak çalışıp çalışmadığını yazın ve kontrol edin.

Doğru yol var ama hata alıyorum: System error 2 has occurred. The system cannot find the file specified.Mongod, Mongodb da denedi.
151291

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

0
  1. windows hizmetleri kontrol

    mongo için servisiniz varsa run ferlow komutuyla kaldırın
    mongod --remove

  2. feryat içerikli mongo.cfg dosyası oluştur

    systemLog:
    hedef: dosya
    yolu: c: \ data \ log \ mongod.log
    depolama:
    dbYol: c: \ data \ db

    yol: günlük verilerini depolamak istediğiniz yer
    dbPath: veritabanı dizininiz

  3. sonra feryat komutunu çalıştırın

    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: mongodb kurulum dizini
    config: .cfg dosya adresi
    DisplayName: Hizmet Adınız

  4. hizmete başla

    net start MongoDB

şimdi her şey bitti. tadını çıkar


0

Benim durumumda, aşağıdaki içeriklerle mongd.exe yanında mongod.cfg oluşturun.

# 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:

Sonra hizmeti oluşturmak için iki komutu çalıştırın.

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>

Aşağıdakiler doğru değildir, kaçan alıntıların gerekli olduğunu unutmayın.

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 Mongo DB'deki adımları deneyin: 3.6 ve 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, Windows 64-bit üzerinde iyi çalışır ... mongod.cfg'deki "Güvenlik" ayarına "yetkilendirme: etkin" satırını ekleyerek güvenli hale getirmeyi denemeyin. Daha sonra pencereler "hizmet zamanında başlamadı" hata mesajı veriyor. Burada neler olduğu hakkında bir fikrin var mı?
David Edwards
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.