Làm cách nào tôi có thể thiết lập MongoDB để nó có thể chạy như một dịch vụ Windows?
Làm cách nào tôi có thể thiết lập MongoDB để nó có thể chạy như một dịch vụ Windows?
Câu trả lời:
Tôi nghĩ rằng nếu bạn chạy nó bằng công --install
tắc dòng lệnh, nó sẽ cài đặt nó như một Dịch vụ Windows.
mongod --install
Nó có thể là giá trị đọc chủ đề này đầu tiên mặc dù. Dường như có một số vấn đề với các đường dẫn tương đối / tuyệt đối khi khóa đăng ký có liên quan được viết.
net start MongoDB
Sau khi cố gắng trong vài giờ, cuối cùng tôi đã làm được.
Hãy chắc chắn rằng bạn đã thêm <MONGODB_PATH>\bin
thư mục vào biến hệ thốngPATH
Đầu tiên tôi thực hiện lệnh này:
D:\mongodb\bin>mongod --remove
Sau đó, tôi đã thực thi lệnh này sau khi mở dấu nhắc lệnh với tư cách quản trị viên:
D:\mongodb\bin>mongod --dbpath=D:\mongodb --logpath=D:\mongodb\log.txt --install
Sau đó ngay trong dấu nhắc lệnh thực thi:
services.msc
Và tìm dịch vụ MongoDB và bấm bắt đầu.
Nếu bạn không làm điều này, tệp nhật ký của bạn ( D:\mongodb\log.txt
trong ví dụ trên) sẽ chứa các dòng như sau:
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)
và nếu bạn cố gắng khởi động dịch vụ từ bảng điều khiển không phải quản trị viên, (tức là net start MongoDB
hoặc Start-Service MongoDB
trong PowerShell), bạn sẽ nhận được phản hồi như sau:
System error 5 has occurred.
Access is denied.
hoặc này:
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
thay vì sử dụng services.msc
. ( mongod
khuyên tôi điều đó.)
không chỉ --install
,
cũng cần --dbpath
và--logpath
và sau khi khởi động lại hệ điều hành, bạn cần xóa "mongod.lock " bằng tay
mongod.lock
lỗi này đã được sửa trên tôiWindows 8 x64
Không giống như các câu trả lời khác, điều này sẽ ..
BẮT ĐẦU DỊCH VỤ TỰ ĐỘNG TRÊN HỆ THỐNG REBOOT / RESTART
(1) Cài đặt MongoDB
(2) Thêm bin vào đường dẫn
(3) Tạo c: \ data \ db
(4) Tạo c: \ data \ log
(5) Tạo c: \ data \ mongod.cfg với nội dung ..
systemLog:
destination: file
path: c:\data\log\mongod.log
storage:
dbPath: c:\data\db
(6) Để tạo dịch vụ sẽ tự động bắt đầu khởi động lại .. CHẠY NHƯ QUẢNG CÁO ..
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) Bắt đầu dịch vụ .. CHẠY NHƯ QUẢNG CÁO ..
net start MongoDB
QUAN TRỌNG: Ngay cả khi điều này nói 'Dịch vụ MongoDB đã được khởi động thành công', nó có thể thất bại
Để kiểm tra kỹ mở Bảng điều khiển> Dịch vụ, đảm bảo trạng thái dịch vụ MongoDB là 'Đang chạy'
Nếu không, hãy kiểm tra tệp nhật ký của bạn tại C: \ data \ log \ mongod.log để biết lý do lỗi và khắc phục nó
(Không khởi động MongoDB qua Bảng điều khiển> Dịch vụ, sử dụng .. net start MongoDB)
(8) Cuối cùng, khởi động lại máy của bạn với MongoDB đang chạy và nó vẫn sẽ chạy khi khởi động lại
Nếu bạn muốn giết nó ..
net stop MongoDB
sc.exe delete MongoDB
3.4
sang 3.6
phiên bản trong lệnh nàysc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe\" --service --config=\"C:\data\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
Các bước dưới đây áp dụng cho Windows.
Chạy bên dưới trong một hành chính cmd
mongod --remove
Điều này sẽ xóa dịch vụ MongoDB hiện có (nếu có).
mongod --dbpath "C:\data\db" --logpath "C:\Program Files\MongoDB\Server\3.4\bin\mongod.log" --install --serviceName "MongoDB"
Hãy chắc chắn rằng C:\data\db
thư mục đó tồn tại
Mở dịch vụ với:
services.msc
Tìm MongoDB -> Nhấp chuột phải -> Bắt đầu
Bạn có thể sử dụng lệnh dưới đây để chạy mongodb như một dịch vụ 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
Nếu bạn sử dụng mongodb với các tham số mặc định, bạn có thể sử dụng các giá trị sau:
Có thêm thông tin về lệnh này ở đây
Tôi đã thử tất cả các câu trả lời và sau đó thực hiện theo cách https://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/#configure-a-windows-service-for-mongodb-community-edition mô tả nó .
Sử dụng tập tin cấu hình ...
"C:\mongodb\bin\mongod.exe" --config "C:\mongodb\mongod.cfg" --install
Tập lệnh PowerShell này tải xuống và cài đặt MongoDB làm dịch vụ 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
Đây là điều duy nhất làm việc cho tôi. Vì mọi thứ phải là một con đường tuyệt đối:
C:\Program Files\MongoDB\Server\3.2\bin>mongod --install --dbpath=c:/data/db --logpath=c:/data/logs/log.txt
Tôi cũng phải chạy nó từ admin cmd
Cách được đề xuất mongod --install
dẫn đến lỗi:
2015-12-03T18:18:28.896+0100 I CONTROL --install has to be used with a log file for server output
Sau khi cài đặt mongodb, C:\mongodb
bạn chỉ cần thêm logpath:
mongod --install --logpath C:\mongodb\logs\mongo.log
Đường dẫn đến logfile phải tồn tại và nó phải là đường dẫn Windows tuyệt đối. Sau đó, bạn bắt đầu dịch vụ MongoDB bằng cách nhập:
net start MongoDB
Cân nhắc sử dụng
mongod --install --rest --master
Làm việc trên Mongo DB: 3.6
(1) Cài đặt MongoDB
(2) Thêm bin vào biến đường dẫn môi trường
(3) Tạo c:\data\db
(4) Tạo c:\data\mongod.log
(5) Chạy bên dưới Lệnh trên bin
thư mục
. \ mongod.exe --install --logpath c: \ data \ mongod.log --logappend --bind_ip 12 7.0.0.1 --dbpath c: \ data \ db
(6) Để bắt đầu mongo db là dịch vụ
bắt đầu mạng MongoDB
(7) Cuối cùng chạy mongo
trong dòng lệnh để kiểm tra shell mongo có mở hay không.
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
Đây là những gì làm việc cho tôi:
sc.exe create MongoDB binPath= "d:\MongoDB\bin\mongod.exe --service --config=d:\MongoDB\bin\mongod.config" displayname= "MongoDB 2.6 Standard" start= "auto"
thoát khỏi binPath đã thất bại đối với tôi như được mô tả trong tài liệu Mongo
Thất bại:
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ách đơn giản nhất là,
C:\data\db
C:\data\db\log.txt
Mở dấu nhắc lệnh là "Chạy với tư cách Quản trị viên" và đảm bảo đường dẫn thư mục bin mogodb là chính xác và ghi
C:\Program Files\MongoDB\Server\3.4\bin> mongod.exe --install mongod --dbpath="c:\data\db" --logpath="c:\data\db\log.txt"
Bắt đầu dịch vụ mongodb:
net run MongoDB
Hoạt động trên MongoDB 3.4 [Windows]
Tạo một tệp trong C: /mongodb/mongodb.config bằng cấu hình này:
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
Để cài đặt MongoDb như một dịch vụ, hãy chạy lệnh này trong powershell với quyền quản trị viên
mongod --config = "C: \ mongodb \ mongodb.config" --install --service
Mở Services.msc và tìm MongoDb, sau đó khởi động nó
Tôi đang dùng phiên bản 2.4.9 và đang sử dụng tệp cấu hình. Dịch vụ sẽ không bắt đầu cho đến khi tôi bao quanh dấu bằng trong tệp cấu hình có khoảng trắng:
dbpath = D:\Mongo data
logpath = C:\mongodb\logs\mongo.log
logappend = true
Ban đầu tôi có:
logpath=C:\mongodb\logs\mongo.log
Tôi cũng phát hiện ra rằng khi cài đặt dịch vụ mà bạn phải sử dụng một đường dẫn tuyệt đối cho tệp cấu hình, vd:
c:\mongodb\bin\>mongodb.exe C:\mongodb\bin\mongod.conf --install
Đừng cố gắng đặt dấu phẩy đảo ngược xung quanh một dbpath có khoảng trắng. Dịch vụ sẽ xuất hiện để bắt đầu khi bạn thực hiện net start MongoDB nhưng nó sẽ chấm dứt. Kiểm tra các tệp nhật ký để xác nhận rằng dịch vụ đã thực sự bắt đầu.
Tôi thấy rằng bạn nên chuyển: dbpath, config và logfile sang mongod với cờ cài đặt
thí dụ :
mongod --dbpath=c:\data\db --config=c:\data\db\config.cfg --logpath=c:\data\db\log.txt --install
lưu ý: Tôi có đường dẫn mongod trong biến đường dẫn của tôi.
Bạn có thể kiểm soát dịch vụ với:
net start mongodb
net stop mongodb
Đây là các bước để cài đặt MongoDB làm Windows Service:
Tạo một thư mục nhật ký, vd C:\MongoDB\log
Tạo một thư mục db, vd C:\MongoDB\db
Chuẩn bị một tệp cấu hình với các dòng sau
dbpath=C:\MongoDB\db
logpath=C:\MongoDB\log
Đặt tệp cấu hình với tên mongod.cfg trong thư mục "C: \ MongoDB \"
Lệnh sau sẽ cài đặt Windows Service trên
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"
Khi bạn chạy lệnh này, bạn sẽ nhận được [SC] CreateService SUCCESS
Chạy lệnh sau trên Dấu nhắc lệnh
net start MongoDB
Nếu bạn cài đặt MongoDB 2.6.1 hoặc mới hơn bằng cách tải xuống MSI từ Dấu nhắc lệnh của quản trị viên , một định nghĩa dịch vụ sẽ tự động được tạo cho bạn.
Tài liệu MongoDB cũng có một hướng dẫn để giúp bạn Tạo thủ công Định nghĩa Dịch vụ Windows nếu cần.
Câu trả lời này dành cho những người đã cài đặt mongo DB bằng trình cài đặt MSI.
Giả sử vị trí được cài đặt mặc định của bạn là "C: \ Program Files \ MongoDB \ Server \ 3.2 \ bin"
Các bước để chạy mongo như một dịch vụ cửa sổ
cd C:\Program Files\MongoDB\Server\3.2\bin
(kiểm tra đường dẫn chính xác, vì bạn có thể đã cài đặt phiên bản khác chứ không phải 3.2).net start MongoDB
services.msc
và kiểm tra xem Mongo có đang chạy như một dịch vụ không.System error 2 has occurred. The system cannot find the file specified.
đã thử mongod, mongodb.
mongod --config "C:\Program Files\MongoDB\Server\3.6\mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary"
kiểm tra dịch vụ windows
nếu bạn có dịch vụ cho mongo hãy loại bỏ nó bằng cách chạy lệnh bellow
mongod --remove
tạo tập tin mongo.cfg với nội dung dưới đây
systemLog:
Destination:
đường dẫn tệp : c: \ data \ log \ mongod.log
lưu trữ:
dbPath: c: \ data \ db
đường dẫn: nơi bạn muốn lưu trữ dữ liệu nhật ký
dbPath: thư mục cơ sở dữ liệu của bạn
sau đó chạy lệnh dưới đây
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 cài đặt thư mục
config: địa chỉ tệp .cfg
DisplayName: Tên dịch vụ của bạn
bắt đầu dịch vụ
net start MongoDB
bây giờ mọi thứ đã xong tận hưởng đi
Trong trường hợp của tôi, tôi tạo mongod.cfg bên cạnh mongd.exe với các nội dung sau.
# 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:
Sau đó, tôi chạy một trong hai lệnh để tạo dịch vụ.
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>
Sau đây là không chính xác, lưu ý các trích dẫn thoát được yêu cầu.
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>
Xin hãy thử các bước trong 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