当我使用mongod.exe
启动MongoDB时,它会显示“等待端口 27017 上的连接”的消息,但是当我执行mongo.exe
时,日志消息是“已接受连接”来自 127.0.0.1:60501 “。
现在,当我使用PyMongo连接到数据库时,我假设要使用的端口号是“ 60501 ”,因为这是建立连接的端口。令人惊讶的是我收到一条错误,说“连接被拒绝”。我认为我的MongoDB安装,配置文件放置等存在问题。
如果没有修复它,我只是将端口号更改为 27017 ,这实际上解决了问题。有人能解释一下这是如何产生的吗?
答案 0 :(得分:4)
此行为并非特定于MongoDB。作为TCP / IP客户端/服务器协议的一部分,服务侦听已配置的端口(通常使用众所周知的默认值,如mongod
的27017)。客户端连接到服务器端口,并建立自己的ephemeral/dynamic port以在客户端/服务器会话期间使用。
来自同一客户端IP的每个活动会话将使用客户端上的不同端口。记录临时端口以识别建立时的不同客户端连接。
您的情况下的日志记录可能会有点混乱,因为您从运行服务器的localhost(127.0.0.1)进行连接,但要连接的正确端口是mongod
服务器端口(默认值:27017) )。