Open Telekom Cloud上MongoDB 3.4社区版无法连接报stream truncated错误
排查方向与解决办法
- 基础网络连通性校验
先跳过数据库层验证网络是否可达,执行telnet <数据库IP> <端口>或nc -zv <数据库IP> <端口>验证端口是否开放。同时排查云平台侧配置:- 安全组、网络ACL是否最近有规则变更,拦截了客户端IP或集群内部网段的访问
- 若使用了负载均衡/ELB转发数据库流量,检查后端实例健康检查是否正常,路由规则是否失效
- TLS版本兼容问题修复
你当前使用的Mongo Shell 5.0.3默认禁用了TLS 1.0、1.1版本,而MongoDB 3.4默认最高仅支持TLS 1.1,TLS握手阶段版本不匹配会直接中断连接抛出stream truncated报错。可在连接命令中新增参数指定兼容老版本TLS:mongo --host <IP> --port <Port> -u rwuser -p --authenticationDatabase admin --tls --tlsCAFile ca.crt --tlsAllowInvalidHostnames --tlsAllowInvalidCertificates --tlsVersion=TLS1_1 - 服务端运行状态排查
登录数据库所在的云服务器本地登录验证服务状态:- 执行
ps aux | grep mongod确认mongod进程正常运行 - 本地走非加密端口连接
mongo --host 127.0.0.1 --port <端口>验证服务是否可正常响应 - 检查系统资源:
df -h确认磁盘未满,free -m确认内存充足,查看系统日志/var/log/messages确认没有OOM kill、文件句柄耗尽等异常
- 执行
- 证书有效性校验
自签名证书过期会直接导致SSL/TLS连接被强制中断,执行以下命令检查证书有效期:
若证书近3天过期,替换更新有效证书即可恢复连接openssl x509 -in ca.crt -text -noout | grep Validity -A2 - 客户端版本兼容验证
MongoDB 5.x系列客户端对3.4版本服务端的兼容支持不完善,可下载3.4/3.6版本的Mongo Shell工具,使用原连接参数测试,排除高版本客户端的兼容Bug影响
内容的提问来源于stack exchange,提问作者Jan-Philipp Heinrich
相关产品推荐
相关产品推荐

