Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2023-11-14 GMT+08:00

Conexão a uma instância de conjunto de réplicas usando Mongo Shell (rede pública)

Nos cenários a seguir, você pode acessar uma instância do DDS da Internet vinculando um EIP à instância.

Cenário 1: suas aplicações são implementadas em um ECS e não estão na mesma região que a instância do DDS.

Figura 1 Acessar o DDS a partir do ECS em todas as regiões

Cenário 2: suas aplicações são implementadas em um servidor de nuvem fornecido por outros fornecedores.

Figura 2 Acessar o DDS de outros servidores em nuvem

Esta seção descreve como usar o Mongo Shell para se conectar a uma instância do conjunto de réplicas por meio de um EIP.

Você pode se conectar a uma instância usando uma conexão SSL ou uma conexão não criptografada. A conexão SSL é criptografada e mais segura. Para melhorar a segurança da transmissão de dados, conecte-se a instâncias usando SSL.

Pré-requisitos

  1. Para obter detalhes sobre como criar e fazer logon em um ECS, consulte Compra de um ECS e Logon em um ECS.
  2. Vincule um EIP à instância de conjunto de réplicas e configure regras de grupo de segurança para garantir que a instância de conjunto de réplicas possa ser acessada a partir de um ECS.
  3. Instale o cliente de MongoDB no ECS.

    Para obter detalhes sobre como instalar um cliente de MongoDB, consulte Como instalar um cliente de MongoDB?

    A versão do cliente de MongoDB instalado deve ser a mesma que a versão da instância.

Conexão SSL

Se você se conectar a uma instância por meio da conexão SSL, ative SSL primeiro. Caso contrário, um erro é relatado. Para obter detalhes sobre como ativar SSL, consulte Ativação e desativação de SSL.

  1. Faça logon no console de gerenciamento.
  2. Clique em no canto superior esquerdo e selecione uma região e um projeto.
  3. Clique em no canto superior esquerdo da página e escolha Databases > Document Database Service.
  4. Na página Instances, clique no nome da instância.
  5. No painel de navegação à esquerda, escolha Connections.
  6. Na área Basic Information, clique em ao lado do campo SSL.
  7. Carregue o certificado raiz para o ECS a ser conectado à instância.

    A seguir, descrevemos como fazer upload do certificado para um ECS do Linux e Window:

    • No Linux, execute o seguinte comando:
      scp<IDENTITY_FILE><REMOTE_USER>@<REMOTE_ADDRESS>:<REMOTE_DIR>
      • IDENTITY_FILE é o diretório onde o certificado raiz reside. A permissão de acesso ao arquivo é 600.
      • REMOTE_USER é o usuário do sistema operacional ECS.
      • REMOTE_ADDRESS é o endereço do ECS.
      • REMOTE_DIR é o diretório do ECS no qual o certificado raiz é carregado.
    • No Windows, carregue o certificado raiz usando uma ferramenta de conexão remota.

  8. Conecte-se à instância no diretório em que o cliente de MongoDB está localizado.

    Método 1: utilizar um endereço de conexão de rede pública

    Exemplo de comando:

    ./mongo "<Public network connection address>" --ssl --sslCAFile<FILE_PATH> --sslAllowInvalidHostnames

    Descrição do parâmetro:

    • Public Network Connection Address: na página Instances, clique na instância para navegar até a página Basic Information. No painel de navegação à esquerda, escolha Connections. Clique na guia Public Connection e obtenha o endereço de conexão de rede pública.
      Figura 3 Obter o endereço de conexão de rede pública

      O formato do endereço de conexão pública é o seguinte. O nome de usuário do banco de dados rwuser e o banco de dados de autenticação admin não podem ser alterados.

      mongodb://rwuser:<password>@192.168.xx.xx:8635/test?authSource=admin

      Preste atenção aos seguintes parâmetros no endereço de conexão de rede pública:

      Tabela 1 Descrição do parâmetro

      Parâmetro

      Descrição

      rwuser

      Nome da conta, ou seja, o nome de usuário do banco de dados.

      <password>

      Senha da conta do banco de dados. Substitua-a pela senha atual.

      Se a senha contiver sinais de arroba (@), pontos de exclamação (!) ou sinais de porcentagem (%), substitua-os por códigos de URL hexadecimais (ASCII) %40, %21 e %25, respectivamente.

      Por exemplo, se a senha for ****@ %***!, o código de URL correspondente será **** %40%25*** %21.

      192.168.xx.xx:8635

      O EIP e a porta vinculados ao nó da instância do conjunto de réplicas.

      authSource=admin

      O banco de dados de autenticação do usuário rwuser deve ser admin. authSource=admin é corrigido no comando.

    • FILE_PATH é o caminho para armazenar o certificado raiz.
    • --sslAllowInvalidHostnames: o certificado do conjunto de réplicas é gerado usando o endereço IP de gerenciamento interno para garantir que a comunicação interna não ocupe recursos como o endereço IP do usuário e a largura de banda. --sslAllowInvalidHostnames é necessário para a conexão SSL por meio de uma rede pública.

    Exemplo de comando:

    ./mongo "mongodb://rwuser:<password>@192.168.xx.xx:8635/test?authSource=admin" --ssl --sslCAFile/tmp/ca.crt --sslAllowInvalidHostnames

    Método 2: usar um EIP

    Exemplo de comando:

    ./mongo --host <DB_HOST> --port <DB_PORT> -u <DB_USER> -p --authenticationDatabaseadmin --ssl --sslCAFile<FILE_PATH> --sslAllowInvalidHostnames

    Descrição do parâmetro:

    • DB_HOST é o EIP vinculado ao nó da instância a ser conectada.

      Na página Instances, clique na instância para ir para a página Basic Information. Escolha Connections> Public Connection e obtenha o EIP do nó correspondente.

    • DB_PORT é a porta do banco de dados. O número de porta padrão é 8635.

      Você pode clicar na instância para ir para a página Basic Information. No painel de navegação à esquerda, escolha Connections. Na página exibida, clique na guia Public Connection e obtenha a porta no campo Database Port na área Basic Information.

      Figura 4 Obter a porta
    • DB_USER é o usuário do banco de dados. O valor padrão é rwuser.
    • FILE_PATH é o caminho para armazenar o certificado raiz.
    • --sslAllowInvalidHostnames: o certificado do conjunto de réplicas é gerado usando o endereço IP de gerenciamento interno para garantir que a comunicação interna não ocupe recursos como o endereço IP do usuário e a largura de banda. --sslAllowInvalidHostnames é necessário para a conexão SSL por meio de uma rede pública.

    Digite a senha da conta do banco de dados quando solicitado:

    Enter password:

    Exemplo de comando:

    ./mongo --host 192.168.xx.xx --port 8635 -u rwuser -p --authenticationDatabase admin --ssl --sslCAFile /tmp/ca.crt --sslAllowInvalidHostnames

  9. Verifique o resultado da conexão. Se as informações a seguir forem exibidas, a conexão será bem-sucedida.

    • O nó primário do conjunto de réplicas está conectado.
      replica:PRIMARY>
    • O nó em espera do conjunto de réplicas está conectado.
      replica:SECONDARY>

Conexão não criptografada

Se você se conectar a uma instância por meio de uma conexão não criptografada, desative SSL primeiro. Caso contrário, um erro é relatado. Para obter detalhes sobre como desabilitar SSL, consulte Ativação e desativação de SSL.

  1. Efetue logon no ECS.
  2. Conecte-se a uma instância do DDS.

    Método 1: utilizar um endereço de conexão de rede pública

    Exemplo de comando:

    ./mongo "<Public network address>"

    Public Network Connection Address: na página Instances, clique na instância para navegar até a página Basic Information. No painel de navegação à esquerda, escolha Connections. Clique na guia Public Connection e obtenha o endereço de conexão de rede pública.

    Figura 5 Obter o endereço de conexão de rede pública

    O formato do endereço de conexão pública é o seguinte. O nome de usuário do banco de dados rwuser e o banco de dados de autenticação admin não podem ser alterados.

    mongodb://rwuser:<password>@192.168.xx.xx:8635/test?authSource=admin

    Preste atenção aos seguintes parâmetros no endereço de conexão pública:

    Tabela 2 Descrição do parâmetro

    Parâmetro

    Descrição

    rwuser

    Nome da conta, ou seja, o nome de usuário do banco de dados.

    <password>

    Senha da conta do banco de dados. Substitua-a pela senha atual.

    Se a senha contiver sinais de arroba (@), pontos de exclamação (!) ou sinais de porcentagem (%), substitua-os por códigos de URL hexadecimais (ASCII) %40, %21 e %25, respectivamente.

    Por exemplo, se a senha for ****@ %***!, o código de URL correspondente será **** %40%25*** %21.

    192.168.xx.xx:8635

    O EIP e a porta vinculados ao nó da instância do conjunto de réplicas.

    authSource=admin

    O banco de dados de autenticação do usuário rwuser deve ser admin. authSource=admin é corrigido no comando.

    Exemplo de comando:

    ./mongo "mongodb://rwuser:<password>@192.168.xx.xx:8635/test?authSource=admin"

    Método 2: usar um EIP

    Exemplo de comando:

    ./mongo --host <DB_HOST> --port <DB_PORT> -u <DB_USER> -p --authenticationDatabase admin

    Descrição do parâmetro:

    • DB_HOST é o EIP vinculado ao nó da instância a ser conectada.

      Na página Instances, clique na instância para ir para a página Basic Information. Escolha Connections> Public Connection e obtenha o EIP do nó correspondente.

    • DB_PORT é a porta do banco de dados. O número de porta padrão é 8635.

      Você pode clicar na instância para ir para a página Basic Information. No painel de navegação à esquerda, escolha Connections. Na página exibida, clique na guia Public Connection e obtenha a porta no campo Database Port na área Basic Information.

      Figura 6 Obter a porta
    • DB_USER é o usuário do banco de dados. O valor padrão é rwuser.

    Digite a senha da conta do banco de dados quando solicitado:

    Enter password:

    Exemplo de comando:

    ./mongo --host 192.168.xx.xx --port 8635 -u rwuser -p --authenticationDatabase admin

  3. Verifique o resultado da conexão. Se as informações a seguir forem exibidas, a conexão será bem-sucedida.

    • O nó primário do conjunto de réplicas está conectado.
      replica:PRIMARY>
    • O nó em espera do conjunto de réplicas está conectado.
      replica:SECONDARY>