ฉันจะตั้งค่า MongoDB เพื่อให้สามารถทำงานเป็นบริการ Windows ได้อย่างไร
ฉันจะตั้งค่า MongoDB เพื่อให้สามารถทำงานเป็นบริการ Windows ได้อย่างไร
คำตอบ:
ฉันคิดว่าถ้าคุณรันด้วย--install
สวิตช์บรรทัดคำสั่งมันจะติดตั้งเป็นบริการของ Windows
mongod --install
มันอาจจะคุ้มค่าที่จะอ่านหัวข้อนี้ก่อน ดูเหมือนจะมีปัญหาบางอย่างกับเส้นทางสัมพัทธ์ / สัมบูรณ์เมื่อคีย์รีจิสทรีที่เกี่ยวข้องได้รับการเขียน
net start MongoDB
หลังจากลองมาหลายชั่วโมงฉันก็ทำได้
ตรวจสอบให้แน่ใจว่าคุณเพิ่ม<MONGODB_PATH>\bin
ไดเรกทอรีไปยังตัวแปรระบบPATH
ครั้งแรกที่ฉันดำเนินการคำสั่งนี้:
D:\mongodb\bin>mongod --remove
จากนั้นฉันเรียกใช้งานคำสั่งนี้หลังจากเปิดพร้อมท์คำสั่งในฐานะผู้ดูแลระบบ:
D:\mongodb\bin>mongod --dbpath=D:\mongodb --logpath=D:\mongodb\log.txt --install
หลังจากนั้นมีคำสั่งให้ดำเนินการ:
services.msc
และมองหาบริการ MongoDB แล้วคลิกเริ่ม
หากคุณไม่ทำสิ่งนี้ไฟล์บันทึกของคุณ ( D:\mongodb\log.txt
ในตัวอย่างด้านบน) จะมีบรรทัดดังนี้:
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)
และหากคุณพยายามเริ่มบริการจากคอนโซลที่ไม่ใช่ผู้ดูแลระบบ (เช่นnet start MongoDB
หรือStart-Service MongoDB
ใน PowerShell) คุณจะได้รับการตอบกลับดังนี้:
System error 5 has occurred.
Access is denied.
หรือสิ่งนี้:
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
services.msc
( mongod
แนะนำให้ฉัน)
ไม่เพียง--install
,
ยังต้องการ--dbpath
และ--logpath
และหลังจากรีบูตระบบปฏิบัติการคุณต้องลบ"mongod.lock " ด้วยตนเอง
mongod.lock
ข้อผิดพลาดนี้ได้รับการแก้ไขในของฉันWindows 8 x64
ต่างจากคำตอบอื่น ๆ ที่จะ ..
เริ่มบริการโดยอัตโนมัติบนระบบรีบูต / รีสตาร์ท
(1) ติดตั้ง MongoDB
(2) เพิ่ม bin ลงในพา ธ
(3) สร้าง c: \ data \ db
(4) สร้าง c: \ data \ log
(5) สร้าง c: \ data \ mongod.cfg พร้อมเนื้อหา ..
systemLog:
destination: file
path: c:\data\log\mongod.log
storage:
dbPath: c:\data\db
(6) เพื่อสร้างบริการที่จะเริ่มโดยอัตโนมัติเมื่อรีบูท .. RUN AS ADMIN ..
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) เริ่มให้บริการ .. วิ่งตาม ADMIN ..
net start MongoDB
สำคัญ: แม้ว่าสิ่งนี้จะระบุว่า 'บริการ MongoDB เริ่มต้นได้สำเร็จ' แต่ก็อาจล้มเหลวได้
ในการตรวจสอบสองครั้งที่เปิดแผงควบคุม> บริการตรวจสอบให้แน่ใจว่าสถานะของบริการ MongoDB คือ 'กำลังทำงาน'
หากไม่มีให้ตรวจสอบไฟล์บันทึกของคุณที่ C: \ data \ log \ mongod.log เพื่อหาสาเหตุของความล้มเหลวและแก้ไข
(อย่าเริ่ม MongoDB ผ่านแผงควบคุม> บริการใช้ .. เริ่ม net MongoDB)
(8) ในที่สุดรีสตาร์ทเครื่องของคุณด้วยการเรียกใช้ MongoDB และมันจะยังคงทำงานเมื่อรีสตาร์ท
หากคุณต้องการฆ่ามัน ..
net stop MongoDB
sc.exe delete MongoDB
3.4
เป็น3.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"
ขั้นตอนด้านล่างนี้ใช้กับ Windows
ทำงานด้านล่างในการบริหาร cmd
mongod --remove
สิ่งนี้จะลบบริการ MongoDB ที่มีอยู่ (ถ้ามี)
mongod --dbpath "C:\data\db" --logpath "C:\Program Files\MongoDB\Server\3.4\bin\mongod.log" --install --serviceName "MongoDB"
ตรวจสอบให้แน่ใจว่าC:\data\db
โฟลเดอร์นั้นมีอยู่
เปิดบริการด้วย:
services.msc
ค้นหาMongoDB -> คลิกขวา -> เริ่ม
คุณสามารถใช้คำสั่งด้านล่างสำหรับการเรียกใช้ mongodb เป็นบริการ 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
หากคุณใช้ mongodb กับพารามิเตอร์เริ่มต้นคุณสามารถใช้ค่าเหล่านี้:
มีข้อมูลเพิ่มเติมเกี่ยวกับคำสั่งนี้ที่นี่
ฉันพยายามทุกคำตอบแล้วก็ทำมันทางhttps://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/#configure-a-windows-service-for-mongodb-community-editionอธิบายว่า .
ใช้ไฟล์ปรับแต่ง ...
"C:\mongodb\bin\mongod.exe" --config "C:\mongodb\mongod.cfg" --install
สคริปต์ PowerShell นี้ดาวน์โหลดและติดตั้ง MongoDB เป็นบริการ 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
นี่เป็นสิ่งเดียวที่ทำงานให้ฉัน เนื่องจากทุกสิ่งต้องเป็นเส้นทางที่สมบูรณ์:
C:\Program Files\MongoDB\Server\3.2\bin>mongod --install --dbpath=c:/data/db --logpath=c:/data/logs/log.txt
ฉันยังต้องเรียกใช้จาก admin cmd
วิธีที่แนะนำทำให้mongod --install
เกิดข้อผิดพลาด:
2015-12-03T18:18:28.896+0100 I CONTROL --install has to be used with a log file for server output
หลังจากติดตั้ง mongodb แล้วC:\mongodb
คุณต้องเพิ่ม logpath:
mongod --install --logpath C:\mongodb\logs\mongo.log
ต้องมีพา ธ ไปยังล็อกไฟล์และต้องเป็นพา ธ Windows แบบสมบูรณ์ จากนั้นคุณเริ่มบริการ MongoDB โดยพิมพ์:
net start MongoDB
พิจารณาใช้
mongod --install --rest --master
ทำงานกับ Mongo DB: 3.6
(1) ติดตั้ง MongoDB
(2) เพิ่ม bin ไปยังตัวแปรพา ธ ของสภาพแวดล้อม
(3) สร้าง c:\data\db
(4) สร้าง c:\data\mongod.log
(5) เรียกใช้คำสั่งด้านล่างในbin
โฟลเดอร์
. \ mongod.exe - ติดตั้ง --logpath c: \ data \ mongod.log --logappend --bind_ip 12 7.0.0.1 - dbpath c: \ data \ db
(6) เพื่อเริ่ม mongo db เป็นบริการ
เริ่มต้นสุทธิ MongoDB
(7) ในที่สุดรันmongo
ใน command line เพื่อตรวจสอบ mongo shell ที่เปิดอยู่หรือไม่
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
นี่คือสิ่งที่ได้ผลสำหรับฉัน:
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 ล้มเหลวสำหรับฉันตามที่อธิบายไว้ในเอกสาร Mongo
ล้มเหลว:
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"
วิธีที่ง่ายที่สุดคือ
C:\data\db
C:\data\db\log.txt
เปิดพร้อมท์คำสั่งเป็น "Run as Administrator" และตรวจสอบให้แน่ใจว่าเส้นทางไดเรกทอรี mogodb bin นั้นถูกต้องและเขียน
C:\Program Files\MongoDB\Server\3.4\bin> mongod.exe --install mongod --dbpath="c:\data\db" --logpath="c:\data\db\log.txt"
เริ่มบริการ mongodb:
net run MongoDB
ทำงานกับ MongoDB 3.4 [Windows]
สร้างไฟล์ใน C: /mongodb/mongodb.config โดยใช้การกำหนดค่านี้:
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 เป็นบริการให้เรียกใช้คำสั่งนี้ใน powershell ด้วยการใช้พลังงานของผู้ดูแลระบบ
mongod --config = "C: \ mongodb \ mongodb.config" - ติดตั้ง - บริการ
เปิด Services.msc แล้วมองหา MongoDb จากนั้นเริ่ม
สำหรับเวอร์ชัน 2.4.3 (เวอร์ชันปัจจุบัน ณ วันที่โพสต์) ให้สร้างไฟล์ปรับแต่งแล้วดำเนินการดังต่อไปนี้:
C:\MongoDB\bin\mongod.exe --config C:\MongoDB\mongod.cfg --service
ปัจจุบัน (มากถึงรุ่น 2.4.4) หากเส้นทางใด ๆ (dbpath / logpath / config) มีช่องว่างบริการจะไม่เริ่มทำงานและแสดงข้อผิดพลาด: "บริการไม่ตอบสนองต่อฟังก์ชันควบคุม"
ฉันใช้เวอร์ชั่น 2.4.9 และใช้ไฟล์ปรับแต่ง บริการจะไม่เริ่มจนกว่าฉันจะล้อมรอบเครื่องหมายเท่ากับในไฟล์ปรับแต่งด้วยช่องว่าง:
dbpath = D:\Mongo data
logpath = C:\mongodb\logs\mongo.log
logappend = true
เดิมทีฉันมี:
logpath=C:\mongodb\logs\mongo.log
ฉันยังค้นพบว่าเมื่อติดตั้งบริการที่คุณต้องใช้เส้นทางที่แน่นอนสำหรับไฟล์ config เช่น:
c:\mongodb\bin\>mongodb.exe C:\mongodb\bin\mongod.conf --install
อย่าถูกล่อลวงให้ใส่เครื่องหมายจุลภาคคว่ำลงในdbpath ที่มีช่องว่าง บริการจะปรากฏขึ้นเมื่อคุณดำเนินการเริ่มต้นสุทธิ MongoDBแต่จะสิ้นสุดลง ตรวจสอบล็อกไฟล์เพื่อยืนยันว่าบริการได้เริ่มขึ้นแล้ว
เรียกใช้ "cmd.exe" ในฐานะผู้ดูแลระบบแล้วเรียกใช้ "sc.exe" เพื่อเพิ่มบริการ Windows ใหม่
ตัวอย่างเช่น:
sc.exe create MongoDB binPath= "c:\program files\mongodb\server\3.2\bin\mongod.exe"
ฉันพบว่าคุณควรผ่าน: dbpath, config และ logfile ไปยัง mongod พร้อมกับติดตั้งแฟล็ก
ตัวอย่าง:
mongod --dbpath=c:\data\db --config=c:\data\db\config.cfg --logpath=c:\data\db\log.txt --install
หมายเหตุ: ฉันมีเส้นทาง mongod ในตัวแปรเส้นทางของฉัน
คุณสามารถควบคุมบริการด้วย:
net start mongodb
net stop mongodb
นี่คือขั้นตอนในการติดตั้ง MongoDB เป็นบริการ Windows:
สร้างไดเรกทอรีบันทึกเช่น C:\MongoDB\log
สร้างไดเรกทอรี db เช่น C:\MongoDB\db
เตรียมไฟล์คอนฟิกูเรชันด้วยบรรทัดต่อไปนี้
dbpath=C:\MongoDB\db
logpath=C:\MongoDB\log
วางไฟล์การกำหนดค่าด้วยชื่อ mongod.cfg ในโฟลเดอร์ "C: \ MongoDB \"
คำสั่งต่อไปนี้จะติดตั้ง Windows Service บนของคุณ
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"
เมื่อคุณเรียกใช้คำสั่งนี้คุณจะได้รับ [SC] CreateService SUCCESS
เรียกใช้คำสั่งต่อไปนี้บนพร้อมท์คำสั่ง
net start MongoDB
หากคุณติดตั้ง MongoDB 2.6.1 หรือใหม่กว่าโดยใช้การดาวน์โหลด MSIจากพรอมต์คำสั่งของผู้ดูแลระบบจะสร้างคำนิยามบริการโดยอัตโนมัติ
เอกสารประกอบ MongoDB ยังมีบทช่วยสอนเพื่อช่วยให้คุณสร้างคำจำกัดความของบริการ Windows ด้วยตนเองหากจำเป็น
คำตอบนี้สำหรับผู้ที่ติดตั้ง mongo DB โดยใช้โปรแกรมติดตั้ง MSI แล้ว
สมมติว่าตำแหน่งที่ติดตั้งเริ่มต้นของคุณคือ "C: \ Program Files \ MongoDB \ Server \ 3.2 \ bin"
ขั้นตอนในการเรียกใช้ mongo เป็นบริการหน้าต่าง
cd C:\Program Files\MongoDB\Server\3.2\bin
(ตรวจสอบเส้นทางอย่างถูกต้องเนื่องจากคุณอาจติดตั้งรุ่นอื่นไม่ใช่ 3.2)net start MongoDB
services.msc
และตรวจสอบว่า Mongo ทำงานเป็นบริการหรือไม่System error 2 has occurred. The system cannot find the file specified.
ลอง mongod, mongodb เช่นกัน
mongod --config "C:\Program Files\MongoDB\Server\3.6\mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary"
ตรวจสอบ windows services
หากคุณมีบริการ mongo ให้ลบออกโดยรันคำสั่ง bellow
mongod --remove
สร้างไฟล์ mongo.cfg พร้อมเนื้อหาร้อง
systemLog:
ปลายทาง:
เส้นทางไฟล์: c: \ data \ log \ mongod.log ที่
จัดเก็บ:
dbPath: c: \ data \ db
path: ตำแหน่งที่คุณต้องการจัดเก็บบันทึกข้อมูล
dbPath: ไดเรกทอรีฐานข้อมูลของคุณ
จากนั้นเรียกใช้คำสั่งร้อง
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
: ที่อยู่ไฟล์. cfg
DisplayName: ชื่อบริการของคุณ
เริ่มบริการ
net start MongoDB
ตอนนี้ทุกสิ่งเสร็จสิ้น สนุกไปกับมัน
ในกรณีของฉันฉันสร้าง mongod.cfg ข้าง mongd.exe โดยมีเนื้อหาดังต่อไปนี้
# 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:
จากนั้นฉันเรียกใช้ทั้งสองคำสั่งเพื่อสร้างบริการ
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>
ต่อไปนี้ไม่ถูกต้องโปรดทราบว่าต้องใช้เครื่องหมายอัญประกาศ
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>
โปรดลองขั้นตอนใน Mongo DB: 3.6 และ 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