Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ Document Database Service/ Guía del usuario/ Resolución de problemas/ Mensajes de error de conexión: No hay ruta al host e intento de conexión fallado
Actualización más reciente 2022-11-07 GMT+08:00

Mensajes de error de conexión: No hay ruta al host e intento de conexión fallado

Síntomas

Se notifica un error al ejecutar el siguiente comando para conectarse a una instancia DDS:

./mongo --host 192.168.1.6 --port 8635 -u rwuser -p xxxxxxxxx --authenticationDatabase admin --ssl --sslCAFile /root/ca.crt –sslAllowInvalidHostnames

Mensaje de error:

MongoDB shell version v3.4.17
connecting to: mongodb://192.168.1.6:8635/
2019-09-19T09:38:36.954+0800 W NETWORK  [thread1] Failed to connect to 192.168.1.6:8635, in(checking socket for error after poll), reason: No route to host
2019-09-19T09:38:36.954+0800 E QUERY    [thread1] Error: couldn't connect to server 192.168.1.6:8635, connection attempt failed :
connect@src/mongo/shell/mongo.js:240:13
@(connect):1:6
exception: connect failed

Causa posible

  • El puerto de instancia es incorrecto.
  • La instancia DDS y ECS no están en la misma región.
  • La instancia de base de datos DDS y ECS no están en la misma subred.

Localización de fallas

  1. Compruebe si la instancia DDS y ECS están en la misma región, grupo de seguridad y subred.

    1. Inicie sesión en la consola DDS, haga clic en el nombre de la instancia y vea información sobre la región, la VPC, el grupo de seguridad y la subred en la página Basic Information.
      Figura 1 Consulta de información de red de instancia
    2. Inicie sesión en la consola de ECS y haga clic en el nombre de ECS. En la página Basic Information, vea la región, la VPC, el grupo de seguridad y la subred.
      Figura 2 Consulta de información de red ECS

  2. Compruebe si el puerto de instancia es correcto y ejecute el comando curl para comprobar si el puerto está disponible.

    1. Haga clic en el nombre de la instancia. En la página Basic Information, consulte el puerto de la instancia.
      Figura 3 Visualización del puerto de instancia
    2. Ejecute el comando curl para comprobar si el puerto está disponible. A continuación se presenta un ejemplo:

      curl 192.168.1.6:8635

      Si el mensaje "Parece que estás intentando acceder a MongoDB a través de HTTP en el puerto del controlador nativo." se muestra, la dirección IP se puede conectar y el puerto 8635 se puede utilizar para la comunicación.

      Figura 4 Salida de comandos

Solución

  • Seleccione un ECS que esté en la misma región, VPC y subred que la instancia DDS que se va a conectar. Alternativamente, puede vincular un EIP a la instancia y conectarse a la instancia a través de una red pública.
  • Asegúrese de que el puerto introducido es el mismo que el puerto real que se muestra en la consola.

Antecedentes

  • Si se conecta a una instancia a través de una red privada, asegúrese de que la región, la subred VPC y el grupo de seguridad del ECS son los mismos que los de la instancia DDS que se va a conectar.
  • Si no puede conectarse a una instancia a través de una red privada, puede vincular un EIP a la instancia y conectarse a la instancia a través de una red pública.