Error
mongos> show dbs
2021-08-30T01:57:44.084+0000 E QUERY [thread1] Error: listDatabases failed:{
"ok" : 0,
"errmsg" : "Couldn't get a connection within the time limit",
"code" : 202,
"codeName" : "NetworkInterfaceExceededTimeLimit",
"$clusterTime" : {
"clusterTime" : Timestamp(1630288651, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
},
"operationTime" : Timestamp(1630288651, 1)
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js:65:1
shellHelper.show@src/mongo/shell/utils.js:816:19
shellHelper@src/mongo/shell/utils.js:706:15
@(shellhelp2):1:1
解决方法
提示连接超时,此时我们去查看日志文件
由于是我采取的分布式mongodb,有副本集,所以查看的是对应的mongos的日志文件
2021-08-27T09:58:49.501+0000 I NETWORK [conn651] scoped connection to rs/172.93.160.246:27100,216.45.54.169:27100,216.45.54.173:27100 not being returned to the pool
2021-08-27T09:58:49.503+0000 I ASIO [NetworkInterfaceASIO-TaskExecutorPool-1-0] Connecting to 172.93.160.246:27020
2021-08-27T09:58:49.503+0000 I ASIO [NetworkInterfaceASIO-TaskExecutorPool-1-0] Connecting to 216.45.54.169:27020
2021-08-27T09:58:49.504+0000 I ASIO [NetworkInterfaceASIO-TaskExecutorPool-1-0] Connecting to 216.45.54.173:27020
2021-08-27T09:58:49.504+0000 I ASIO [NetworkInterfaceASIO-TaskExecutorPool-1-0] Successfully connected to 172.93.160.246:27020, took 1ms (1 connections now open to 172.93.160.246:27020)
2021-08-27T09:58:49.506+0000 I ASIO [NetworkInterfaceASIO-TaskExecutorPool-1-0] Successfully connected to 216.45.54.173:27020, took 2ms (1 connections now open to 216.45.54.173:27020)
2021-08-27T09:58:56.482+0000 I ASIO [NetworkInterfaceASIO-ShardRegistry-0] Successfully connected to 216.45.54.169:27020, took 12874ms (1 connections now open to 216.45.54.169:27020)
2021-08-27T09:58:56.483+0000 I ASIO [NetworkInterfaceASIO-TaskExecutorPool-1-0] Successfully connected to 216.45.54.169:27020, took 6980ms (2 connections now open to 216.45.54.169:27020)
最后一行提示连接到某一个sharding数据库耗时太久了,我采取了最简单的方法 重启该分片数据库(kill掉这个进程 然后再重新启动一次),就一切正常了。