Jeśli mam uruchomioną instancję mongo, jak mogę sprawdzić, na jakich numerach portów nasłuchuje z powłoki? Myślałem, że db.serverStatus()
to wystarczy, ale tego nie widzę. widzę to
"connections" : {
"current" : 3,
"available" : 816
Który jest blisko ... ale nie. Propozycje? Przeczytałem dokumentację i nie mogę znaleźć żadnego polecenia, które to zrobi.
Odpowiedzi:
Z powłoki systemowej możesz użyć
lsof
(patrz odpowiedź Dericka poniżej) lubnetstat -an
zobaczyć, co faktycznie robi proces. Jednak zakładając, że masz dostęp tylko domongo
powłoki (co sugeruje tytuł twojego pytania), możesz uruchomićserverCmdLineOpts()
polecenie. To wyjście da ci wszystkie argumenty przekazane w linii poleceń (argv) i te z pliku konfiguracyjnego (przeanalizowane) i możesz wywnioskować, że portymongod
nasłuchują na podstawie tych informacji. Oto przykład:Jeśli nie przekazałeś określonych opcji portu, takich jak te powyżej, domyślnie
mongod
nasłuchuje na 27017 i 28017 ( konsola http ). Uwaga: istnieje kilka innych argumentów, które mogą zmieniać porty bez podawania ich wprost, zobacz tutaj:https://docs.mongodb.org/manual/reference/configuration-options/#sharding.clusterRole
źródło
{ "argv" : [ "mongod" ], "parsed" : { }, "ok" : 1 }
to niewiele mi mówi. Myślę, że mówi mi, że jestem na domyślnym porcie.Możesz to zrobić z powłoki systemu operacyjnego, uruchamiając:
źródło
Spróbuj tego:
Wyświetli zarówno adres IP, jak i numer portu.
źródło
lsof
:> mongod 14942 dmitrii 5u IPv4 0xc36ad5231f84011d 0t0 TCP *: 27017 (SŁUCHAJ) I zwhatsmyurl
polecenia: {"you": "127.0.0.1:50294", "ok": 1 } I nie pasują.MongoDB domyślnie nasłuchuje tylko na jednym porcie (27017). Jeśli
--rest
interfejs jest aktywny, port 28017 (27017 + 1000) również będzie otwarty i będzie obsługiwał żądania z sieci WWW o szczegółowe informacje.MongoDB obsługuje
getParameter
polecenie, ale działa to tylko wtedy, gdy masz już połączenie z bazą danych (w tym momencie znasz już port).źródło
Wypróbuj następujące polecenie, to działa dla mnie:
źródło