连接报错:连接失败或服务不可达 本页介绍了 connect failed 连接报错的处理方法。 问题描述 使用客户端连接文档数据库服务实例时报错 "Authentication failed", 使用的连接命令如下: mongo "mongodb://root: @ , /admin?authSourceadmin&replicaSet " 报错信息如下: 20230719T12:42:13.281+0800 W NETWORK [js] Unable to reach primary for set DDS 20230719T12:42:13.281+0800 I NETWORK [js] Cannot reach any nodes for set DDS. Please check network connectivity and the status of the set. This has happened for 2 checks in a row. 20230719T12:42:13.284+0800 E QUERY [js] Error: connect failed to replica set DDS/ : , : : connect@src/mongo/shell/mongo.js:257:13 @(connect):1:6 exception: connect failed 原因分析 从报错信息来看,是客户端到文档数据库服务之间的网络访问不通导致的。 可能的原因有: 文档数据库服务实例的端口错误,不可用。 文档数据库服务实例与客户端云主机不在同一个区域或子网。 服务端开启了 SSL 模式,但是客户端没有使用 SSL 模式访问。 处理方法 1. 检查文档数据库服务实例与ECS是否在同一个区域、同一个安全组和子网内。 首先登录文档数据库服务控制台,单击实例名称,在基本信息页面查看文档数据库服务实例所在的区域、VPC、安全组和子网信息。然后弹性云服务器控制台,单击云服务器名称,在基本信息页面,查看当前云主机所在的区域、VPC、安全组和子网信息。确保 2 者的配置信息相同。 2. 检查实例的端口是否正确,并通过 curl/telnet 命令检查端口是否可用。 登录到文档数据库服务控制台,单机实例名称,在基本信息页面查看实例的 IP 和端口信息,然后使用 curl 或者 telnet 命令测试端口的连通性。 示例如下: curl 检查 $ curl : It looks like you are trying to access MongoDB over HTTP on the native driver port. telnet 检查 $ telnet Trying ... Connected to . Escape character is '^]'. ^] telnet> 3. 检查实例是否开启了 SSL 模式。 登录到文档数据库服务控制台,单机实例名称,在基本信息页面上查看是否开启了 SSL 模式。如果开启了 SSL 模式,则下载证书后使用 SSL 模式访问,命令示例如下: ./mongo "mongodb://root: @ , /admin?authSourceadmin&replicaSet " ssl sslCAFile sslAllowInvalidHostnames