1. 什么是MongoDB服务器端口
MongoDB是目前最流行的非关系型数据库,其采用分布式文件存储方式,支持水平扩展,可用于存储海量数据。而MongoDB服务器端口则是指MongoDB服务器通过此端口与客户端进行通信,从而进行数据的读写操作。若要访问MongoDB中的数据,首先需要连接MongoDB服务器,而连接MongoDB服务器则需要知道其监听的端口。默认情况下MongoDB服务会监听27017端口,当多个MongoDB实例运行在同一台主机上时,应该在运行时指定不同的端口号以避免冲突。
2. 如何查看MongoDB服务器端口状态
2.1 使用mongod --port 命令
使用mongod --port 命令可以查看MongoDB服务器监听的端口号状态。运行该命令后,MongoDB服务器将会启动并监听指定的端口。需要注意的是,若要指定某一端口,可以在命令后添加--port选项,如下所示:
mongod --port 27018
此命令表示启动MongoDB服务器并监听27018端口号。此时可以通过以下命令来验证服务器是否已成功运行:
mongo --port 27018
该命令用于连接指定端口的MongoDB数据库。如果连接成功,则表示MongoDB服务器已经成功启动并监听指定端口。
2.2 使用netstat命令
使用netstat命令可以列出MongoDB服务器所有正在运行的端口详细信息。该命令需要在服务器的终端上执行,通过该命令可以查看MongoDB服务器已经开放的端口信息,从而确认MongoDB服务器的状态。命令格式如下:
netstat -an | grep 27017
执行该命令后,将会列出运行在服务器上所有开放的端口信息,并筛选出监听了27017端口的进程。如果命令输出结果中包含了类似于下面这样的信息,则表示MongoDB服务器正在监听该端口,并已经成功启动:
tcp6 0 xxx.xxx.xxx.xxx:27017 :::* LISTEN
2.3 使用MongoDB内部命令
在MongoDB提供了一系列的内部命令,可以用来查看MongoDB服务器的状态、性能、以及其他有关信息。其中包括了许多跟MongoDB服务器端口状态有关的命令,例如:db.runCommand({listCommands : 1})、db.serverStatus()等命令,这些命令将返回MongoDB服务器的详细信息,包括当前正在监听的端口信息。下面我们分别来介绍下这两个命令:
2.3.1 db.runCommand({listCommands : 1}) 命令
该命令可用于列出所有MongoDB服务器中可用的命令,并输出每个命令的相关信息。执行该命令后,所返回的结果以文档形式呈现,每个命令作为一个子文档返回,其中包含该命令的名称,及相关的选项等信息。下面就是一个具体的执行命令示例代码:
use admin
db.runCommand({listCommands : 1})
以上代码表示使用admin数据库,并执行db.runCommand({listCommands : 1})命令。当数据库连接成功后,将返回如下所示的结果:
{
"commands" : {
"isMaster" : {
"help" : "Check if this is a master server.",
"enabled" : true
},
"ping" : {
"help" : "Test command for connection.",
"enabled" : true
},
"insert" : {
"help" : "Insert a document into a collection.",
"enabled" : true,
"readOnly" : false,
"slaveOk" : true
},
"aggregate" : {
"help" : "Perform a MongoDB Map-Reduce operation over a collection.",
"enabled" : true,
"readOnly" : true,
"slaveOk" : true
},
"buildInfo" : {
"help" : "Get build info from the MongoDB server.",
"enabled" : true,
"readOnly" : true,
"slaveOk" : true
},
..........
},
"ok" : 1
}
上面的代码段返回了所有可以使用的命令列表,可以从中查找到有关MongoDB服务器状态的详细信息。由于这个命令返回的数据比较多,不适合用于查看其中的某个具体参数,因此,需要使用其他的命令来进行查看。
2.3.2 db.serverStatus() 命令
使用db.serverStatus()命令可以查看MongoDB服务器的状态信息,其中包括了当前正在监听的端口号、网络通信状态、内存占用情况、以及CPU的使用情况等。执行该命令后将返回一个包含了各种状态信息的文档,内容丰富,但如果只查看与服务器端口状态相关的信息,则属于信息过载。下面是一个具体的使用范例代码:
use admin
db.serverStatus()
以上代码将会使用admin数据库,并执行db.serverStatus()命令。当命令执行成功后,MongoDB将返回如下所示的结果:
{
"host" : "xxxx",
"version" : "4.4.1",
"process" : "mongod",
"pid" : 12345,
"uptime" : 38849.0,
"uptimeMillis" : NumberLong(38849000),
"uptimeEstimate" : "37h31m",
"localTime" : ISODate("2022-01-07T10:46:29.363Z"),
"asserts" : {
......
},
"backgroundFlushing" : {
......
},
"connections" : {
......
},
"extra_info" : {
"note" : "fields vary by platform"
},
"fts" : {
......
},
"globalLock" : {
"totalTime" : NumberLong(1010496000),
"currentQueue" : {
......
},
"activeClients" : {
......
},
"currentQueueTotal" : NumberLong(0),
"locks" : {
......
}
}
}
根据以上返回结果,我们可以找到其中有关服务器状态的相关信息,从而确认MongoDB服务器监听的端口号。
3. 总结
在实际操作过程中,有多种方法可用于查看MongoDB服务器端口状态。这些方法的使用都十分简单,在本文中我们详细介绍了:mongod --port命令、netstat命令、以及在MongoDB中的内部命令: db.runCommand({listCommands : 1})、db.serverStatus()等命令。需要注意的是,虽然这些命令的返回结果都包含有关MongoDB服务器端口状态的相关信息,但每个命令返回的数据格式有所不同,我们需要根据实际需要进行选择,以便更加准确地获取所需的信息。