Bagaimana saya bisa menjalankan MongoDB sebagai layanan Windows?

Jawaban:

118

Saya pikir jika Anda menjalankannya dengan --installsaklar baris perintah, itu menginstalnya sebagai Layanan Windows.

mongod --install

Mungkin ada baiknya membaca utas ini terlebih dahulu. Tampaknya ada beberapa masalah dengan jalur relatif / absolut ketika kunci registri yang relevan ditulis.

Stephen Curran
sumber
7
akhirnya saya berhasil menginstal dengan menjalankan ini: mongod.exe --service
heisthedon
3
Sepertinya yang benar-benar perlu Anda lakukan adalah memasukkan path lengkap di baris perintah: c: \> c: \ mongodb \ bin \ mongod.exe --service. Namun, pastikan untuk menjalankan jendela perintah sebagai administrator (terutama di windows server) jika tidak, Anda akan digagalkan oleh UAC.
JC Grubbs
2
inti ini dapat menghemat waktu untuk pengaturan mesin devleopment gist.github.com/serdarb/5102848
Serdar
1
Dan setelah Anda menjalankan dengan --install, Anda harusnet start MongoDB
John
17
Ini membutuhkan path logfile, Anda dapat menambahkan path dbpath dan logfile seperti mongod ini --dbpath = "c: \ data \ db" --logpath = "c: \ data \ db \ log.txt" --install, After ini Anda perlu menjalankan net mulai MongoDB.
sivaram636
355

Setelah mencoba selama beberapa jam, akhirnya saya berhasil.

Pastikan Anda menambahkan <MONGODB_PATH>\bindirektori ke variabel sistemPATH

Pertama saya menjalankan perintah ini:

D:\mongodb\bin>mongod --remove

Kemudian saya menjalankan perintah ini setelah membuka command prompt sebagai administrator:

D:\mongodb\bin>mongod --dbpath=D:\mongodb --logpath=D:\mongodb\log.txt --install

Setelah itu di sana di command prompt jalankan:

services.msc

Dan cari layanan MongoDB dan klik start.


CATATAN: Pastikan untuk menjalankan command prompt sebagai administrator.

Jika Anda tidak melakukan ini, file log Anda ( D:\mongodb\log.txtdalam contoh di atas) akan berisi baris seperti ini:

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)

dan jika Anda mencoba memulai layanan dari konsol non-admin, (yaitu net start MongoDBatau Start-Service MongoDBdi PowerShell), Anda akan mendapatkan respons seperti ini:

System error 5 has occurred.
Access is denied.

atau ini:

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
hyeomans
sumber
10
Anda juga dapat memulainya dengan net start MongoDBalih - alih menggunakan services.msc. ( mongodmerekomendasikan hal itu kepada saya.)
Joe
1
Ini berhasil untuk saya. Path ke file log harus dibuat secara manual jika belum ada (saya menggunakan path selain dari direktori mongo dalam contoh).
dgundersen
Pada awalnya, Mongo mulai sebagai layanan, tetapi database saya kosong. Saya hanya bisa melihat database saya yang sudah ada sebelumnya dengan menambahkan \ data ke path: mongod --dbpath = D: \ mongodb \ data
Jeremy Thille
"Pastikan untuk menjalankan command prompt sebagai administrator" - itu berhasil! Berjalan dengan izin normal tidak menulis peringatan apa pun, tetapi layanan tidak diciptakan. Izin, izin, izin!
Dzoukr
1
Seharusnya jawaban yang divalidasi
Logan Wlv
63

tidak hanya --install,

juga perlu --dbpathdan--logpath

dan setelah reboot OS Anda harus menghapus "mongod.lock " secara manual

rubi
sumber
4
+1 untuk menghapus file mongod.lock. Ini tampaknya masih menjadi masalah dengan 1.8.1 berjalan pada 64-bit.
SethO
4
Bahkan lebih baik untuk menentukan --config dan mendefinisikan dbpath, logpath dan opsi lain di sana.
Oleg
3
Tampaknya mongod.lockbug ini diperbaiki pada sayaWindows 8 x64
Jonathan Czitkovics
50

Tidak seperti jawaban lain, ini akan ..

MULAI LAYANAN SECARA OTOMATIS PADA SISTEM REBOOT / RESTART

Instal MongoDB

Windows

(1) Instal MongoDB

(2) Tambahkan nampan ke jalur

(3) Buat c: \ data \ db

(4) Buat c: \ data \ log

(5) Buat c: \ data \ mongod.cfg dengan konten ..

systemLog:
    destination: file
    path: c:\data\log\mongod.log
storage:
    dbPath: c:\data\db

(6) Untuk membuat layanan yang akan mulai secara otomatis di reboot .. LARI SEBAGAI 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) Mulai layanan .. LARI SEBAGAI ADMIN ..

net start MongoDB

PENTING: Sekalipun ini mengatakan 'Layanan MongoDB sudah mulai berhasil' itu bisa gagal

Untuk memeriksa ulang, buka Control Panel> Services, pastikan status layanan MongoDB adalah 'Berjalan'

Jika tidak, periksa file log Anda di C: \ data \ log \ mongod.log untuk alasan kegagalan dan perbaiki

(Jangan mulai MongoDB melalui Control Panel> Layanan, gunakan .. net mulai MongoDB)

(8) Akhirnya, restart mesin Anda dengan MongoDB berjalan dan masih akan berjalan saat restart

Jika Anda pernah ingin membunuhnya ..

net stop MongoDB

sc.exe delete MongoDB
danday74
sumber
Terima kasih itu berhasil untuk saya, saya hanya perlu mengubah 3.4ke 3.6versi dalam perintah inisc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe\" --service --config=\"C:\data\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
guru_007
28

Langkah-langkah di bawah ini berlaku untuk Windows.

Jalankan di bawah ini secara administratif cmd

mongod --remove

Ini akan menghapus layanan MongoDB yang ada (jika ada).

mongod --dbpath "C:\data\db" --logpath "C:\Program Files\MongoDB\Server\3.4\bin\mongod.log" --install --serviceName "MongoDB"

Pastikan C:\data\dbfolder itu ada

Buka layanan dengan:

services.msc

Temukan MongoDB -> Klik kanan -> Mulai

Mohammed Zameer
sumber
1
Sempurna! Catatan kecil, folder harus ada (setidaknya satu untuk log).
Diego Jancic
Pertanyaan kecil tentang sidenote: Tidak perlu file juga ada? Samar-samar saya ingat tidak adanya file (kosong) itu sendiri memberi saya masalah.
Fariz Fakkel
1
Solusi sempurna.
sapatelbaps
21

Anda dapat menggunakan perintah di bawah ini untuk menjalankan mongodb sebagai layanan 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 

Jika Anda menggunakan mongodb dengan parameter default, Anda dapat menggunakan nilai-nilai ini:

  • yourIPadress: 127.0.0.1 atau localhost
  • yourPortNumber: 27017 (port default) atau jangan masukkan --port
  • serviceDisplayName: hanya jika Anda menjalankan lebih dari satu layanan (sejak mongodb 1.8)

Ada informasi lebih lanjut tentang perintah ini di sini

http://www.mongodb.org/display/DOCS/Windows+Service

chafank
sumber
14

Skrip PowerShell ini Mengunduh dan Menginstal MongoDB sebagai Layanan 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
Serdar
sumber
10

Ini adalah satu-satunya hal yang berhasil untuk saya. Karena semuanya harus menjadi jalur absolut:

C:\Program Files\MongoDB\Server\3.2\bin>mongod --install --dbpath=c:/data/db --logpath=c:/data/logs/log.txt

Saya juga harus menjalankannya admin cmd

Jamie Hutber
sumber
7

Cara yang disarankan mongod --installmenghasilkan kesalahan:

2015-12-03T18:18:28.896+0100 I CONTROL  --install has to be used with a log file for server output

Setelah menginstal mongodb, C:\mongodbAnda perlu menambahkan logpath:

mongod --install --logpath C:\mongodb\logs\mongo.log

Path ke logfile harus ada dan harus path Windows absolut. Kemudian Anda memulai layanan MongoDB dengan mengetik:

net start MongoDB
Peter G.
sumber
5

Pertimbangkan untuk menggunakan

mongod --install --rest --master
jrojo
sumber
pertimbangkan untuk memperbarui jawaban Anda dengan jawaban ruby ​​(milik Anda itu tidak lengkap)
danielpopa
5

Bekerja pada Mongo DB: 3.6

(1) Instal MongoDB

(2) Tambahkan bin ke variabel jalur lingkungan

(3) Buat c:\data\db

(4) Buat c:\data\mongod.log

(5) Jalankan di bawah Perintah pada binfolder

. \ mongod.exe - instal --logpath c: \ data \ mongod.log --logappend --bind_ip 12 7.0.0.1 --dbpath c: \ data \ db

(6) Untuk memulai mongo db sebagai layanan

mulai bersih MongoDB

(7) Akhirnya jalankan mongodi baris perintah untuk memeriksa shell mongo terbuka atau tidak.

Zahid Rahman
sumber
4
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

Referensi

Hassan Amir Khan
sumber
4

Inilah yang bekerja untuk saya:

sc.exe create MongoDB binPath= "d:\MongoDB\bin\mongod.exe --service --config=d:\MongoDB\bin\mongod.config" displayname= "MongoDB 2.6 Standard" start= "auto"

lolos dari binPath gagal bagi saya seperti yang dijelaskan dalam dokumentasi Mongo

Gagal:

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"
Enkode
sumber
1
Jalankan cmd sebagai administrator dan jalankan perintah ini: sc.exe buat MongoDB binPath = "d: \ MongoDB \ bin \ mongod.exe --service --config = d: \ MongoDB \ bin \ mongod.config" displayname = "MongoDB 2.6 Standar "start =" auto "
Akash5288
4

Cara paling sederhana adalah,

  1. Membuat folder C:\data\db
  2. Buat file C:\data\db\log.txt
  3. Buka command prompt sebagai "Run as Administrator" dan pastikan path direktori mogodb sudah benar dan tulis

    C:\Program Files\MongoDB\Server\3.4\bin> mongod.exe --install mongod --dbpath="c:\data\db" --logpath="c:\data\db\log.txt" 
  4. Mulai layanan mongodb:

    net run MongoDB
Arsalan Ahmed Khan
sumber
'C: \ Program' tidak dikenali sebagai perintah internal atau eksternal, program yang dapat dijalankan, atau file batch.
151291
4

Bekerja pada MongoDB 3.4 [Windows]

  • Buat dir C: / mongodb / data
  • Buat file di C: /mongodb/mongodb.config menggunakan konfigurasi ini:

    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
  • Untuk menginstal MongoDb sebagai layanan, jalankan perintah ini di PowerShell dengan kekuatan admin

    mongod --config = "C: \ mongodb \ mongodb.config" --install --service

  • Buka Services.msc dan cari MongoDb, lalu mulai

Marco Fantasia
sumber
3

Untuk versi 2.4.3 (versi saat ini pada tanggal posting), buat file config dan kemudian jalankan yang berikut:

C:\MongoDB\bin\mongod.exe --config C:\MongoDB\mongod.cfg --service

iisystems
sumber
3

Saat ini (hingga versi 2.4.4), jika ada jalur (dbpath / logpath / config) berisi spasi, maka layanan tidak akan mulai, dan menunjukkan kesalahan: "Layanan tidak menanggapi fungsi kontrol".

RoeeK
sumber
2

Saya di versi 2.4.9 dan menggunakan file konfigurasi. Layanan tidak akan mulai sampai saya mengepung tanda sama dengan file konfigurasi dengan spasi:

dbpath = D:\Mongo data
logpath = C:\mongodb\logs\mongo.log 
logappend = true

Awalnya saya punya:

logpath=C:\mongodb\logs\mongo.log 

Saya juga menemukan bahwa ketika menginstal layanan Anda harus menggunakan jalur absolut untuk file konfigurasi mis:

c:\mongodb\bin\>mongodb.exe C:\mongodb\bin\mongod.conf --install

Jangan tergoda untuk menempatkan koma terbalik di sekitar dbpath dengan spasi. Layanan akan muncul untuk memulai ketika Anda menjalankan net mulai MongoDB tetapi akan berakhir. Periksa file log untuk konfirmasi bahwa layanan telah benar-benar dimulai.

CrispinH
sumber
2

Jalankan "cmd.exe" sebagai administrator dan kemudian jalankan "sc.exe" untuk menambahkan layanan Windows baru.

sebagai contoh:

sc.exe create MongoDB binPath= "c:\program files\mongodb\server\3.2\bin\mongod.exe"
Terry Lin
sumber
2

Saya menemukan bahwa Anda harus meneruskan: dbpath, config dan logfile ke mongod dengan flag install

contoh:

mongod --dbpath=c:\data\db --config=c:\data\db\config.cfg --logpath=c:\data\db\log.txt --install 

Catatan: Saya memiliki path mongod dalam variabel path saya.

Anda dapat mengontrol layanan dengan:

net start mongodb
net stop  mongodb 
Ahmed Eid
sumber
2

Ini adalah langkah-langkah untuk menginstal MongoDB sebagai Layanan Windows:

  1. Buat direktori log, mis C:\MongoDB\log

  2. Buat direktori db, mis C:\MongoDB\db

  3. Siapkan file konfigurasi dengan baris berikut

    dbpath=C:\MongoDB\db

    logpath=C:\MongoDB\log

    Tempatkan file konfigurasi dengan nama mongod.cfg di folder "C: \ MongoDB \"

  4. Perintah berikut akan menginstal Layanan Windows di Windows 7 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. Setelah Anda menjalankan perintah ini, Anda akan mendapatkan [SC] CreateService SUCCESS

  6. Jalankan perintah berikut pada Command Prompt

    net start MongoDB

CP Soni
sumber
1

Jawaban ini adalah untuk mereka yang sudah menginstal mongo DB menggunakan installer MSI.

Katakanlah lokasi default yang Anda instal adalah "C: \ Program Files \ MongoDB \ Server \ 3.2 \ bin"

Langkah-langkah untuk menjalankan mongo sebagai layanan jendela

  1. Buka command prompt sebagai administrator
  2. Tipe cd C:\Program Files\MongoDB\Server\3.2\bin (periksa jalur dengan benar, karena Anda mungkin menginstal versi yang berbeda, dan bukan 3.2).
  3. Tekan enter
  4. Tipe net start MongoDB
  5. Tekan enter
  6. Tekan Windows + R, ketik services.mscdan periksa apakah Mongo berjalan sebagai layanan.
Abhas Bhoi
sumber
Memiliki jalur yang benar tetapi mendapatkan kesalahan: System error 2 has occurred. The system cannot find the file specified.mencoba mongod, mongodb juga.
151291
0
mongod --config "C:\Program Files\MongoDB\Server\3.6\mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary"
Gehan Fernando
sumber
0
  1. periksa layanan windows

    jika Anda memiliki layanan untuk mongo hapus dengan menjalankan perintah di bawah
    mongod --remove

  2. buat file mongo.cfg dengan konten di bawah ini

    systemLog:
    tujuan:
    jalur file : c: \ data \ log \ mongod.log
    penyimpanan:
    dbPath: c: \ data \ db

    path: tempat Anda ingin menyimpan data log
    dbPath: direktori database Anda

  3. kemudian jalankan perintah di bawah

    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: direktori instalasi mongodb
    config: .cfg alamat file
    DisplayName: Nama Layanan Anda

  4. memulai layanan

    net start MongoDB

sekarang semuanya sudah selesai. nikmati itu

Ahmad Hamzavi
sumber
0

Dalam kasus saya, saya membuat mongod.cfg di sebelah mongd.exe dengan konten berikut.

# 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:

Kemudian saya menjalankan kedua perintah untuk membuat layanan.

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>

Berikut ini tidak benar, perhatikan kutipan yang lolos diperlukan.

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>
Donghua Liu
sumber
-1

Tolong coba langkah-langkah dalam 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
Tính Ngô Quang
sumber
MongoDB 4.0 berjalan dengan baik pada Windows 64-bit ... KECUALI Anda mencoba mengamankannya dengan menambahkan baris "otorisasi: diaktifkan" ke pengaturan "Keamanan" di mongod.cfg. Kemudian itu menghasilkan jendela melaporkan pesan kesalahan "layanan tidak dimulai tepat waktu". Adakah yang tahu apa yang terjadi di sini?
David Edwards