Zainstalowałem mongodb i sterowniki php na moim serwerze unix.
Moje pytanie brzmi: jak mogę sprawdzić, czy mongodb działa? Czy istnieje proste zapytanie w wierszu poleceń, aby sprawdzić stan? Jeśli uruchomię go raz z powłoki, czy będzie działać, jeśli wyjdę z powłoki (nie wydaje się, aby tak było). Jak ustawić trwałe połączenie mongodb i automatycznie uruchamiać się po ponownym uruchomieniu serwera?
Mogę biec:
-bash-3.2 $ su
Hasło:
[root @ xxx] # cd / var / lib
[root @ xxx] # ./mongodb-linux-i686-1.6.5/bin/mongod
./mongodb-linux-i686-1.6. 5 / bin / mongod --help, aby uzyskać pomoc i opcje uruchamiania
Wed 23 lutego 08:06:54 Początek bazy danych MongoDB: pid = 7271 port = 27017 dbpath = / data / db / 32-bit** UWAGA: podczas korzystania z 32-bitowej bazy MongoDB masz ograniczenie do około 2 gigabajtów danych
** patrz http://blog.mongodb.org/post/137788967/32-bit-limitations** OSTRZEŻENIE: korzystasz z OpenVZ. Wiadomo, że jest zepsuty !!!
Środa 23 lutego 08:06:54 wersja db v1.6.5, wersja pdfile 4.5
środa 23 lutego 08:06:54 wersja git: 0eb017e9b2828155a67c5612183337b89e12e291
środa 23 lutego 08:06:54 informacje o systemie: Linux domU-12-31-39-01 -70-B4 2.6.21.7-2.fc8xen # 1 SMP pt
15 lutego 12:39:36 EST 2008 i686 BOOST_LIB_VERSION = 1_37
środa 23 lutego 08:06:54 [initandlisten] oczekiwanie na połączenia na porcie 27017
środa 23 lutego 08: 06:54 [websvr] interfejs administratora sieci nasłuchujący na porcie 28017
Jeśli otworzę oddzielną powłokę, mogę wtedy połączyć się z mongodb:
-bash-3.2 $ cd / var / lib
-bash-3.2 $ ./mongodb-linux-i686-1.6.5/bin/mongo
Wersja powłoki MongoDB: 1.6.5
połączenie z: test
db.foo.find ()
{" _id ": ObjectId (" 4d63d7d3eb95985ab19c8feb ")," a ": 1}
Jeśli jednak zamknę początkową powłokę, nie mogę się połączyć:
-bash-3.2 $ cd / var / lib
-bash-3.2 $ ./mongodb-linux-i686-1.6.5/bin/mongo
Wersja powłoki MongoDB: 1.6.5
łączenie z: test
środa 23 lutego 08:25:10 Błąd : nie można połączyć się z serwerem 127.0.0.1 (anon): 1154
wyjątek: połączenie nie powiodło się
pgrep mongo
.Znajduję:
Aby być dużo bardziej konsekwentnym. Zwracana wartość może być użyta do wykrycia, ile jest uruchomionych instancji mongod
źródło
Aby szybko sprawdzić, czy mongodb działa, ta szybka sztuczka nc da ci znać.
Powyższe polecenie zakłada, że uruchamiasz go na domyślnym porcie na hoście lokalnym.
Aby rozpocząć automatyczne uruchamianie, możesz spojrzeć na ten wątek .
źródło
27017 open
lub w przeciwnym razieConnection refused
.to powinno działać dobrze ...
źródło
Aby sprawdzić aktualny status działania mongodb, użyj:
sudo service mongodb status
źródło
Prawidłowo, zamknięcie powłoki zatrzyma MongoDB. Spróbuj użyć
--fork
argumentu wiersza poleceń dla procesu mongod, co spowoduje, że będzie działał jako demon. Nie jestem guru od Uniksa, ale jestem pewien, że musi istnieć sposób, aby automatycznie uruchomić go po uruchomieniu komputera.na przykład
Zapoznaj się z pełną dokumentacją dotyczącą uruchamiania i zatrzymywania Mongo .
źródło
[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
ale nadal, gdy zamykam powłokę i otwieram nową, otrzymujęConnect failed
&
, a teraz nie mogę znaleźć procesida.ps -e | grep mongod
Możesz użyć poniższego polecenia, aby sprawdzić status MongoDB, np .:
sudo service MongoDB status
który wyświetla stan usługi MongoDB jak na zrzucie ekranu:źródło
Prawdopodobnie dlatego, że nie zamknąłem poprawnie mojego serwera deweloperskiego lub z podobnego powodu. Aby to naprawić, zdejmij blokadę i uruchom serwer za pomocą:
sudo rm /var/lib/mongodb/mongod.lock ; sudo start mongodb
źródło
Wiem, że to jest dla php, ale tutaj szukałem rozwiązania dla węzła. Korzystanie z mongoskin:
W przypadku innych sterowników możesz spróbować nawiązać połączenie, a jeśli się nie powiedzie, wiesz, że serwer mongo nie działa. Mongoskin musi faktycznie wykonać jakieś połączenie (np. Ping), ponieważ łączy się leniwie. W przypadku php możesz użyć metody próby połączenia. Zrób scenariusz!
PHP:
źródło