سؤال

كيف يمكنني إعداد 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)

هناك مزيد من المعلومات حول هذا الأمر هنا

http://www.mongodb.org/display/docs/windowsservice.

يقوم هذا البرنامج النصي بتنزيلات 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"

أبسط طريقة هي،

  1. أنشئ مجلد C:\data\db
  2. إنشاء ملف C:\data\db\log.txt
  3. موجه الأوامر المفتوح ك "تشغيل كمسؤول" وتأكد من صحة مسار Mogodb Directory وكتابة

    C:\Program Files\MongoDB\Server\3.4\bin> mongod.exe --install mongod --dbpath="c:\data\db" --logpath="c:\data\db\log.txt" 
    
  4. بدء تشغيل خدمة 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:

  1. إنشاء دليل السجل، على سبيل المثال C:\MongoDB\log

  2. إنشاء دليل DB، على سبيل المثال C:\MongoDB\db

  3. قم بإعداد ملف تكوين مع الأسطر التالية

    dbpath=C:\MongoDB\db

    logpath=C:\MongoDB\log

    ضع ملف التكوين باسم Mongod.cfg في مجلد "C: Mongodb "

  4. سوف يقوم الأمر التالي بتثبيت خدمة 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"

  5. بمجرد تشغيل هذا الأمر، سوف تحصل على [SC] CreateService SUCCESS

  6. قم بتشغيل الأمر التالي في موجه الأوامر

    net start MongoDB

إذا قمت بتثبيت MongoDB 2.6.1 أو أحدث باستخدام MSI تنزيل من أ مطالبة أمر المسؤول, ، يجب إنشاء تعريف الخدمة تلقائيا لك.

يحتوي وثائق MongoDB أيضا على برنامج تعليمي لمساعدتك إنشاء خدمة Windows يدويا التعريف إذا لزم الأمر.

هذه الإجابة مخصصة لأولئك الذين قاموا بالفعل بتثبيت Mongo DB باستخدام برنامج MSI Installer.

دعنا نقول موقعك الافتراضي المثبت هو "C: Program Files MongodB Server 3.2 Bin"

خطوات تشغيل mongo كخدمة نافذة

  1. افتح موجه الأوامر كمسؤول
  2. اكتب cd C:\Program Files\MongoDB\Server\3.2\bin (تحقق المسار بشكل صحيح، كما قد يكون لديك إصدار مختلف مثبت، وليس 3.2).
  3. اضغط دخول
  4. اكتب net start MongoDB
  5. اضغط دخول
  6. اضغط على Windows + R، النوع services.msc وتحقق مما إذا كان Mongo يعمل كخدمة.
mongod --config "C:\Program Files\MongoDB\Server\3.6\mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary"
  1. تحقق من خدمات ويندوز

    إذا كان لديك خدمة من Mongo قم بإزالةها عن طريق تشغيل الأمر
    mongod --remove

  2. إنشاء ملف Mongo.cfg مع محتوى رفع الصوت عاليا

    SystemLog:
    الملف الوجهة
    المسار: C: Data Log Mongod.log
    تخزين:
    DBPath: C: Data DB

    المسار: حيث تريد تخزين سجل سجلات
    DBPath: دليل قاعدة البيانات الخاص بك

  3. ثم قم بتشغيل الأمر

    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 عنوان الملف
    اسم العرض: اسم الخدمة الخاص بك

  4. إبدأ الخدمة

    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

  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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top