mongo 인스턴스가 실행중인 경우 쉘에서 수신 대기중인 포트 번호를 어떻게 확인할 수 있습니까? 그렇게 db.serverStatus()할 거라고 생각 했지만 보이지 않습니다. 나는 이것을 본다
"connections" : {
"current" : 3,
"available" : 816
가깝지만 ... 제안? 문서를 읽었으며이를 수행 할 명령을 찾을 수없는 것 같습니다.
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
{ "argv" : [ "mongod" ], "parsed" : { }, "ok" : 1 }. 내가 기본 포트에 있다고 말하는 것 같아요.
이 시도:
db.runCommand({whatsmyuri : 1})
IP 주소와 포트 번호가 모두 표시됩니다.
lsof:> mongod 14942 dmitrii 5u IPv4 0xc36ad5231f84011d 0t0 TCP * : 27017 (LISTEN) 그리고 whatsmyurl명령에서 : { "you": "127.0.0.1:50294", "ok": 1 } 그리고 그들은 일치하지 않습니다.
MongoDB는 기본적으로 하나의 포트 (27017)에서만 수신합니다. 는 IF --rest인터페이스가 활성화되어, 포트 28017 (+ 1,000 27,017)도 자세한 내용은 공개 처리 웹 요청 될 것입니다.
MongoDB는 getParameter명령을 지원 하지만 이미 데이터베이스에 연결되어있는 경우에만 작동합니다 (이미 포트를 알고있는 지점).