كيف يمكنني تشغيل MongoDB كخدمة Windows؟
-
19-09-2019 - |
سؤال
كيف يمكنني إعداد MongoDB حتى تتمكن من تشغيل خدمة Windows؟
المحلول
أعتقد إذا قمت بتشغيله مع --install
مفتاح سطر الأوامر، يقوم بتثبيته كخدمة Windows.
mongod --install
قد يستحق القراءة هذا الموضوع أولا رغم ذلك. يبدو أن هناك بعض المشاكل المتعلقة بالمسارات النسبية / المطلقة عند كتابة مفتاح التسجيل ذي الصلة.
نصائح أخرى
بعد محاولة لعدة ساعات، أخيرا فعلت ذلك.
تأكد من أنك أضفت <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
ليس فقط --install
,
ايضا بحاجة الى --dbpath
و --logpath
وبعد إعادة تشغيل نظام التشغيل تحتاج إلى حذف "mongod.lock."يدويا
على عكس الإجابات الأخرى هذه الإرادة ..
بدء تشغيل الخدمة تلقائيا على إعادة تشغيل النظام / إعادة التشغيل
mongoDB تثبيت
شبابيك
(1) تثبيت mongodb
(2) إضافة بن إلى المسار
(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) لإنشاء الخدمة التي سوف ابدأ تلقائيا عند إعادة التشغيل .. شغلها كمسؤول ..
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) بدء الخدمة .. تشغيل المسؤول ..
net start MongoDB
هام: حتى لو كان هذا يقول "بدأت خدمة Mongodb بنجاح"، يمكن أن تفشل
لمضاعفة فحص لوحة التحكم مفتوحة> الخدمات، تأكد من أن حالة خدمة MongoDB هي "تشغيل"
إذا لم يكن الأمر كذلك، تحقق من ملف السجل الخاص بك في C: Data Log Mongod.log لسبب الفشل وإصلاحه
(لا تبدأ MongoDB عبر لوحة التحكم> الخدمات، استخدم .. Net Start Mongodb)
(8) أخيرا، أعد تشغيل جهازك باستخدام MongoDB Running وسيظل يعمل على إعادة التشغيل
إذا كنت تريد قتلها ..
net stop MongoDB
sc.exe delete MongoDB
تنطبق الخطوات أدناه على 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 مع المعلمات الافتراضية، فيمكنك استخدام هذه القيم:
- YouripAdress: 127.0.0.1 أو المحلي
- yourportnumber: 27017 (المنفذ الافتراضي) أو لا تضع -
- servicedisplayname: فقط إذا قمت بتشغيل أكثر من خدمة واحدة (منذ MongoDB 1.8)
هناك مزيد من المعلومات حول هذا الأمر هنا
يقوم هذا البرنامج النصي بتنزيلات 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
حاولت جميع الإجابات ثم فعلت ذلك 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
كان هذا هو الشيء الوحيد الذي عمل بالنسبة لي. كما كان كل شيء يجب أن يكون مسارا مطلقا:
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
يجب أن يكون الطريق إلى LogFile ويجب أن يكون مسار Windows مطلقا. ثم تبدأ خدمة MongoDB عن طريق كتابة:
net start MongoDB
فكر في استخدام
mongod --install --rest --master
العمل على Mongo DB: 3.6
(1) تثبيت mongodb
(2) إضافة صندوق مسار البيئة
(3) إنشاء c:\data\db
(4) إنشاء c:\data\mongod.log
(5) تشغيل الأمر أدناه bin
مجلد
. mongod.exe - sinstall - logpath c: data mongod.log - logappend - bind_pind_ip 12.0.0.1 - dbpath c: data db
(6) بدء تشغيل Mongo DB كخدمة
صافي بداية mongodb.
(7) تشغيل أخيرا mongo
في سطر الأوامر للتحقق من شل منغو مفتوح أم لا.
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 كان يفشل بالنسبة لي كما هو موضح في وثائق منغو
باءت بالفشل:
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
موجه الأوامر المفتوح ك "تشغيل كمسؤول" وتأكد من صحة مسار Mogodb Directory وكتابة
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
- إنشاء DIR C: / Mongodb / البيانات
إنشاء ملف في 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
اكتشفت أيضا أنه عند تثبيت الخدمة التي يجب عليك استخدام مسار مطلق لملف التكوين على سبيل المثال:
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
ملاحظة: لدي مسار منغود في متغير المسار الخاص بي.
يمكنك التحكم في الخدمة مع:
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 على
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 Installer.
دعنا نقول موقعك الافتراضي المثبت هو "C: Program Files MongodB Server 3.2 Bin"
خطوات تشغيل mongo كخدمة نافذة
- افتح موجه الأوامر كمسؤول
- اكتب
cd C:\Program Files\MongoDB\Server\3.2\bin
(تحقق المسار بشكل صحيح، كما قد يكون لديك إصدار مختلف مثبت، وليس 3.2). - اضغط دخول
- اكتب
net start MongoDB
- اضغط دخول
- اضغط على Windows + R، النوع
services.msc
وتحقق مما إذا كان Mongo يعمل كخدمة.
mongod --config "C:\Program Files\MongoDB\Server\3.6\mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary"
تحقق من خدمات ويندوز
إذا كان لديك خدمة من Mongo قم بإزالةها عن طريق تشغيل الأمر
mongod --remove
إنشاء ملف Mongo.cfg مع محتوى رفع الصوت عاليا
SystemLog:
الملف الوجهة
المسار: C: Data Log Mongod.log
تخزين:
DBPath: C: Data DBالمسار: حيث تريد تخزين سجل سجلات
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: دليل تثبيت منغودب
Config :.cfg عنوان الملف
اسم العرض: اسم الخدمة الخاص بك
إبدأ الخدمة
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>
جرب Plz الخطوات في 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