Saya telah menginstal mongodb dan driver php di server unix saya.
Pertanyaan saya adalah bagaimana cara mengetahui apakah mongodb sedang berjalan? Apakah ada kueri baris perintah sederhana untuk memeriksa status? Jika saya memulainya sekali dari shell apakah itu akan tetap berjalan jika saya keluar dari shell (sepertinya tidak demikian). Bagaimana cara membuat koneksi mongodb tetap ada dan mulai otomatis saat reboot server?
Saya bisa berlari:
-bash-3.2 $ su
Sandi:
[root @ xxx] # cd / var / lib
[root @ xxx] # ./mongodb-linux-i686-1.6.5/bin/mongod
./mongodb-linux-i686-1.6. 5 / bin / mongod --bantuan untuk bantuan dan opsi startup
Rabu 23 Feb 08:06:54 MongoDB mulai: pid = 7271 port = 27017 dbpath = / data / db / 32-bit** CATATAN: saat menggunakan MongoDB 32 bit, Anda dibatasi hingga sekitar 2 gigabyte data
** lihat http://blog.mongodb.org/post/137788967/32-bit-limitations** PERINGATAN: Anda menjalankan OpenVZ. Ini diketahui rusak !!!
Rabu 23 Feb 08:06:54 db versi v1.6.5, pdfile versi 4.5
Rabu 23 Feb 08:06:54 versi git: 0eb017e9b2828155a67c5612183337b89e12e291
Rab 23 Feb 08:06:54 sys info: Linux domU-12-31-39-01 -70-B4 2.6.21.7-2.fc8xen # 1 SMP Jum
15 Feb 12:39:36 EST 2008 i686 BOOST_LIB_VERSION = 1_37
Rab 23 Feb 08:06:54 [initandlisten] menunggu koneksi di port 27017
Rab 23 Feb 08: 06:54 [websvr] antarmuka admin web mendengarkan pada port 28017
Jika saya membuka shell terpisah, saya kemudian dapat terhubung ke mongodb:
-bash-3.2 $ cd / var / lib
-bash-3.2 $ ./mongodb-linux-i686-1.6.5/bin/mongo
MongoDB versi shell: 1.6.5
menghubungkan ke: test
db.foo.find ()
{" _id ": ObjectId (" 4d63d7d3eb95985ab19c8feb ")," a ": 1}
Namun jika saya menutup shell awal, saya tidak dapat terhubung:
-bash-3.2 $ cd / var / lib
-bash-3.2 $ ./mongodb-linux-i686-1.6.5/bin/mongo
MongoDB versi shell: 1.6.5
menghubungkan ke: tes
Rabu 23 Feb 08:25:10 Kesalahan : tidak dapat terhubung ke server 127.0.0.1 (anon): 1154
pengecualian: koneksi gagal
pgrep mongo
.Saya menemukan:
Agar lebih konsisten. Nilai yang dikembalikan dapat digunakan untuk mendeteksi berapa banyak contoh mongod yang sedang berjalan
sumber
Untuk segera memeriksa apakah mongodb sedang berjalan, trik nc cepat ini akan memberi tahu Anda.
Perintah di atas mengasumsikan bahwa Anda menjalankannya di port default di localhost.
Untuk memulainya secara otomatis, Anda mungkin ingin melihat utas ini .
sumber
27017 open
, atau yang lainnyaConnection refused
.ini seharusnya bekerja dengan baik ...
sumber
Untuk memeriksa status penggunaan mongodb yang sedang berjalan:
sudo service mongodb status
sumber
Benar, menutup shell akan menghentikan MongoDB. Coba gunakan
--fork
baris perintah arg untuk proses mongod yang membuatnya berjalan sebagai daemon. Saya bukan ahli Unix, tapi saya yakin pasti ada cara untuk membuatnya mulai otomatis saat mesin dinyalakan.misalnya
Lihat dokumentasi lengkap tentang Memulai dan Menghentikan Mongo .
sumber
[root@xxx lib]# ./mongodb-linux-i686-1.6.5/bin/mongod --fork --logpath /var/log/m ongodb.log --logappend all output going to: /var/log/mongodb.log forked process: 7518
tetapi masih ketika saya menutup shell dan membuka yang baru saya dapatkanConnect failed
&
, dan sekarang saya tidak dapat menemukan processidnya.ps -e | grep mongod
Anda dapat menggunakan perintah di bawah ini, untuk memeriksa status MongoDB, misalnya:
sudo service MongoDB status
yang menampilkan status layanan MongoDB seperti tangkapan layar:sumber
Mungkin karena saya tidak mematikan server dev saya dengan benar atau alasan serupa. Untuk memperbaikinya, lepaskan kunci dan mulai server dengan:
sudo rm /var/lib/mongodb/mongod.lock ; sudo start mongodb
sumber
Saya tahu ini untuk php, tetapi saya sampai di sini mencari solusi untuk node. Menggunakan mongoskin:
Dengan driver lain, Anda dapat mencoba membuat koneksi dan jika gagal, Anda tahu server mongo sedang down. Mongoskin perlu benar-benar melakukan panggilan (seperti ping) karena terhubung dengan malas. Untuk php, Anda bisa menggunakan metode try-to-connect. Buat skrip!
PHP:
sumber