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 console)で待機します。注:明示的にせずにポートを変更できる他の引数がいくつかあります。ここを参照してください:
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)And from whatsmyurlcommand:{"you": "127.0.0.1:50294"、 "ok":1 }そして、それらは一致しません。
MongoDBはデフォルトで1つのポートのみをリッスンします(27017)。--restインターフェースがアクティブな場合、ポート28017(27017 + 1000)も開いて詳細のWebリクエストを処理します。
MongoDBはgetParameterコマンドをサポートしていますが、これは、すでにデータベースに接続している場合にのみ機能します(その時点ですでにポートがわかっています)。