[mongodb] mongo가 mongo shell에서 수신하는 포트를 어떻게 알 수 있습니까?

mongo 인스턴스가 실행중인 경우 쉘에서 수신 대기중인 포트 번호를 어떻게 확인할 수 있습니까? 그렇게 db.serverStatus()할 거라고 생각 했지만 보이지 않습니다. 나는 이것을 본다

"connections" : {
    "current" : 3,
    "available" : 816

가깝지만 … 제안? 문서를 읽었으며이를 수행 할 명령을 찾을 수없는 것 같습니다.



답변

시스템 셸에서 사용하거나 lsof(아래 Derick의 답변 참조) netstat -an프로세스가 실제로 수행하는 작업을 볼 수 있습니다. 그러나 mongo(질문 제목이 암시하는) 셸에 대한 액세스 권한 만 있다고 가정하면 serverCmdLineOpts()명령을 실행할 수 있습니다 . 이 출력은 명령 줄 (argv)에 전달 된 모든 인수와 구성 파일 (파싱 된)의 인수를 제공 mongod하며 해당 정보를 기반으로 포트 가 수신 대기 하고 있음을 유추 할 수 있습니다 . 예를 들면 다음과 같습니다.

db.serverCmdLineOpts()
{
    "argv" : [
        "./mongod",
        "-replSet",
        "test",
        "--rest",
        "--dbpath",
        "/data/test/r1",
        "--port",
        "30001"
    ],
    "parsed" : {
        "dbpath" : "/data/test/r1",
        "port" : 30001,
        "replSet" : "test",
        "rest" : true
    },
    "ok" : 1
}

위와 같은 특정 포트 옵션을 전달하지 않은 mongod경우은 기본적 으로 27017 및 28017 ( http 콘솔 ) 에서 수신 대기합니다 . 참고 : 명시 적이 지 않고 포트를 변경할 수있는 몇 가지 다른 인수가 있습니다. 여기를 참조하십시오.

https://docs.mongodb.org/manual/reference/configuration-options/#sharding.clusterRole


답변

다음을 실행하여 운영 체제 쉘에서이를 수행 할 수 있습니다.

sudo lsof -iTCP -sTCP:LISTEN | grep mongo


답변

이 시도:

db.runCommand({whatsmyuri : 1})

IP 주소와 포트 번호가 모두 표시됩니다.


답변

MongoDB는 기본적으로 하나의 포트 (27017)에서만 수신합니다. 는 IF --rest인터페이스가 활성화되어, 포트 28017 (+ 1,000 27,017)도 자세한 내용은 공개 처리 웹 요청 될 것입니다.

MongoDB는 getParameter명령을 지원 하지만 이미 데이터베이스에 연결되어있는 경우에만 작동합니다 (이미 포트를 알고있는 지점).


답변

다음 명령을 시도하십시오.이 명령은 저에게 효과적입니다.

sudo lsof -iTCP -sTCP:LISTEN | grep mongo


답변