Memulai dan Menghentikan MongoDB dicakup dalam manual MongoDB. Ini menjelaskan berbagai pilihan untuk menghentikan MongoDB melalui shell, cli, driver dll. Ia juga merinci risiko penghentian MongoDB yang salah (seperti korupsi data) dan berbicara tentang berbagai sinyal mematikan.
Selain itu, jika Anda telah menginstal MongoDB menggunakan manajer paket untuk Ubuntu atau Debian maka Anda dapat menghentikan mongodb (saat ini mongod di ubuntu) sebagai berikut:
Atau di Mac OS X
Atau pada sistem berbasis Red Hat :
Atau di Windows jika Anda telah menginstal sebagai layanan bernama MongoDB
:
Dan jika tidak diinstal sebagai layanan (pada Windows 7+) Anda dapat menjalankan:
taskkill /f /im mongod.exe
Untuk mempelajari lebih lanjut tentang masalah shutdown yang tidak bersih, cara terbaik untuk menghindari skenario seperti itu dan apa yang harus dilakukan jika terjadi shutdown yang tidak bersih, silakan lihat: Memulihkan Data setelah Shutdown yang Tidak Terduga .
sudo service mongodb [start|stop|restart|status]
.sudo service stop mongodb
hasil dalam: berhenti: layanan tidak dikenalJika Anda benar-benar menginginkan satu baris yang setara dengan perintah dalam pertanyaan awal Anda, Anda dapat alias:
mongo --eval "db.getSiblingDB('admin').shutdownServer()"
Jawaban Mark tentang memulai dan menghentikan MongoDB melalui layanan adalah pendekatan administratif yang lebih khas (dan disarankan).
sumber
start C:\mongodb\bin\mongod.exe --config C:\net2\primary1-pc\mongod.cfg start C:\mongodb\bin\mongod.exe --config C:\net2\secondary1-pc\mongod.cfg ...
dan kemudian shutdown.batC:\mongodb\bin\mongo.exe --eval "db.getSiblingDB('admin').shutdownServer()" --port 27017 C:\mongodb\bin\mongo.exe --eval "db.getSiblingDB('admin').shutdownServer()" --port 27018 C:\mongodb\bin\mongo.exe --eval "db.getSiblingDB('admin').shutdownServer()" --port 27019 ...
net stop MongoDB
itu tidak dapat diandalkan, jadi saya menggunakan sesuatu yang mirip:mongo admin --eval "db.shutdownServer()"
. Bersulang!mongod --dbpath /path/to/your/db --shutdown
Info lebih lanjut di official: http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/
sumber
mongod v3.4.10
:Error parsing command line: unrecognised option '--shutdown'
:-(db.shutdownServer({force:1,timeoutSecs:0})
yang akan menghambat pembilasan data yang tersisa ke sekunder. Anda mungkin tidak selalu menginginkan itu.Jika server berjalan sebagai proses latar depan di terminal, ini bisa dilakukan dengan menekan
Cara lain untuk mematikan server yang berjalan adalah dengan menggunakan perintah shutdown,
Kalau tidak, perintah seperti kill dapat digunakan untuk mengirim sinyal. Jika mongod memiliki 10014 sebagai PID, perintahnya adalah
sumber
Saya mengikuti dokumentasi resmi MongoDB untuk berhenti dengan sinyal. Salah satu dari perintah berikut dapat digunakan (PID mewakili
Process ID
darimongod
proses):yang mengirim sinyal 15 (SIGTERM), atau
yang mengirimkan sinyal 2 (SIGINT).
Jika Anda memiliki lebih dari satu instance yang berjalan atau Anda tidak peduli dengan PID, Anda dapat menggunakan
pkill
untuk mengirim sinyal ke semuamongod
proses yang berjalan :atau
atau, jauh lebih aman, hanya untuk proses milik Anda:
atau
PS
Catatan: Saya terpaksa pilihan ini, karena
mongod --shutdown
, meskipun disebutkan dalam arus dokumentasi MongoDB , anehnya tidak bekerja pada mesin saya (MacOS, mongodb v3.4.10, diinstal denganhomebrew
):Error parsing command line: unrecognised option '--shutdown'
PPS
(khusus macOS) Sebelum ada yang bertanya-tanya: tidak, saya tidak bisa menghentikannya dengan perintah
brew services stop mongodb
karena saya tidak memulainya dengan
brew services start mongodb
.Saya sudah mulai
mongod
dengan baris perintah khusus :-)sumber
Menggunakan
mongod --shutdown
Menurut dokumen resmi: kelola-mongodb-proses /
: D
sumber
Kasus khusus saya adalah:
sebelumnya mulai mongod dengan:
sekarang, mau berhenti
mongod
.dan rujuk Proses berhenti mongod doc resmi , telah mencoba:
(1)
shutdownServer
tetapi gagal:(2)
--shutdown
masih gagal:(3) perintah mulai sebelumnya menambahkan --shutdown:
(4) gunakan
service
untuk berhenti:dan
tampilkan yang diharapkan
Active: inactive (dead)
tetapimongod
sebenarnya masih berjalan, untuk dapat melihat proses dari ps:dan akhirnya , benar-benar berhenti mongod dengan:
sampai sekarang, root root: masih belum diketahui ...
Semoga solusi di atas bermanfaat untuk Anda.
sumber
buat file bernama mongostop.bat
simpan kode berikut di dalamnya
jalankan file mongostop.bat dan Anda berhasil menghentikan mongo
sumber
Satu liner untuk memulai atau menghentikan layanan mongodb menggunakan baris perintah;
NET START MONGODB
NET STOP MONGODB
Saya menggunakan ini sendiri, itu berhasil.
sumber
Dari perintah yang diberikan saya pikir Anda berada di Linux.
Mulai MongoDB:
Periksa Status:
Hentikan MongoDB:
sumber
Membangun jawaban dari stennie:
Saya menemukan bahwa mongo sedang mencoba untuk menyambung kembali ke db setelah server dimatikan, yang akan menyebabkan penundaan dan pesan kesalahan. Menambahkan berhenti () setelah shutdown mempercepatnya dan mengurangi pesan, tetapi masih ada satu.
Saya juga ingin menambahkan konteks - Saya memulai dan menghentikan mongod sebagai bagian dari kasus uji untuk kode lain, jadi mendaftar sebagai layanan tidak cocok dengan kasus penggunaan. Saya berharap berakhir dengan sesuatu yang berjalan pada semua platform (ini diuji di windows sekarang). Saya menggunakan mongod 3.6.9
sumber
Saya hanya melakukannya:
quit();
Harap dicatat saya menggunakan mongo 3.0.
Mongo
sumber
di jendela terminal pada mac Anda, tekan control + c
sumber
Menggunakan homebrew (cara yang disarankan):
Untuk memulai:
brew services start mongodb-community
Untuk berhenti:
brew services stop mongodb-community
sumber
Saya menggunakan skrip startup ini di Ubuntu.
sumber
Windows
Di PowerShell, itu:
Stop-Service MongoDB
Kemudian untuk memulainya lagi:
Start-Service MongoDB
Untuk memverifikasi apakah itu dimulai, jalankan:
net start | findstr MongoDB
.Catatan: Di atas menganggap MongoDB terdaftar sebagai layanan .
sumber
Silakan manfaatkan Task Manager yang disediakan oleh OS Anda untuk solusi cepat dan mudah. Di bawah ini adalah screengrab dari / untuk Windows 10. Klik kanan pada proses yang disorot dan pilih berhenti . Pilih mulai , jika sudah berhenti.
Harap Catatan: Secara internal perintah melakukan hal yang sama yang harus Anda lakukan secara manual menggunakan GUI (Task Manager), yang disediakan oleh Windows / OS Anda. Padahal, pendekatan ini digunakan untuk tujuan belajar / berlatih untuk memulai dan Anda tidak akan diblokir karena ini.
sumber
CTRL + C
di baris perintah windows
sumber