MongoDB'yi Windows hizmeti olarak çalışacak şekilde nasıl ayarlayabilirim?
MongoDB'yi Windows hizmeti olarak çalışacak şekilde nasıl ayarlayabilirim?
Yanıtlar:
Bence --install
komut 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.
net start MongoDB
Birkaç saat denedikten sonra sonunda yaptım.
<MONGODB_PATH>\bin
Dizini 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.
Bunu yapmazsanız, günlük dosyanız ( D:\mongodb\log.txt
yukarı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 MongoDB
veya Start-Service MongoDB
PowerShell'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
net start MongoDB
yerine ile de başlatabilirsiniz services.msc
. ( mongod
bunu bana tavsiye etti.)
sadece --install
,
ayrıca ihtiyaç --dbpath
ve--logpath
ve işletim sistemini yeniden başlattıktan sonra "mongod.lock " dosyasını manuel olarak silmeniz gerekir
mongod.lock
Windows 8 x64
Diğer cevapların aksine bu olacak ..
HİZMETİ OTOMATİK OLARAK SİSTEM YEDEKLEME / YENİDEN BAŞLATMA
(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
3.4
zorunda3.6
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"
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\db
Klasörün var olduğundan emin olun
Açık servisler:
services.msc
MongoDB'yi Bul -> Sağ tıklayın -> Başlat
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:
Burada bu komut hakkında daha fazla bilgi var
Tüm cevapları denedim ve sonra https://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/#configure-a-windows-service-for-mongodb-community-edition bunu tarif ettiği gibi yaptım .
Bir yapılandırma dosyası kullan ...
"C:\mongodb\bin\mongod.exe" --config "C:\mongodb\mongod.cfg" --install
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
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
Önerilen yol mongod --install
hatayla 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:\mongodb
basitç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
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) bin
Klasö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 mongo
mongo kabuğunun açık olup olmadığını kontrol etmek için komut satırında çalıştırın .
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
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"
En basit yol,
C:\data\db
C:\data\db\log.txt
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"
Mongodb hizmetini başlat:
net run MongoDB
MongoDB 3.4 üzerinde çalışma [Windows]
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
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.
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
MongoDB'yi Windows Hizmeti olarak yükleme adımları şunlardır:
Bir günlük dizini oluşturun, ör. C:\MongoDB\log
Bir db dizini oluşturun, ör. C:\MongoDB\db
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
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"
Bu komutu çalıştırdığınızda, [SC] CreateService SUCCESS
Komut İsteminde aşağıdaki komutu çalıştırın
net start MongoDB
Kullandığınız MongoDB 2.6.1 veya daha yeni yüklerseniz MSI indir bir mesafede Yönetici Komut İstemi , bir hizmet tanımı sizin için otomatik olarak oluşturulmalıdır.
MongoDB belgelerinde, gerekirse bir Windows Hizmeti tanımı El ile Oluşturmanıza yardımcı olacak bir öğretici de vardır .
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ı
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).net start MongoDB
services.msc
Mongo'nun bir hizmet olarak çalışıp çalışmadığını yazın ve kontrol edin.System error 2 has occurred. The system cannot find the file specified.
Mongod, Mongodb da denedi.
mongod --config "C:\Program Files\MongoDB\Server\3.6\mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary"
windows hizmetleri kontrol
mongo için servisiniz varsa run ferlow komutuyla kaldırın
mongod --remove
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
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
hizmete başla
net start MongoDB
şimdi her şey bitti. tadını çıkar
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>
Plz Mongo DB'deki adımları deneyin: 3.6 ve Windows 10
mongod --remove
mongod --dbpath=C:/data/db --port 27017 --logpath C:/data/log/log.txt --service
mongod --dbpath=C:/data/db --port 27017 --logpath C:/data/log/log.txt --install
net start MongoDB