查看MongoDB服务器端口状态

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服务器端口状态的相关信息,但每个命令返回的数据格式有所不同,我们需要根据实际需要进行选择,以便更加准确地获取所需的信息。

数据库标签