Conexão a uma instância de conjunto de réplicas usando Mongo Shell (rede privada)
O Mongo shell é o cliente padrão para o servidor de banco de dados MongoDB. Você pode usar o Mongo Shell para se conectar a instâncias de BD e consultar, atualizar e gerenciar dados em bancos de dados. Para usar o Mongo Shell, baixe e instale o cliente de MongoDB primeiro e, em seguida, use o Mongo shell para se conectar à instância de BD.
Por padrão, uma instância do DDS fornece um endereço IP privado. Se suas aplicações forem implementadas em um ECS e estiverem na mesma região e VPC que as instâncias do DDS, você poderá se conectar a instâncias do DDS usando um endereço IP privado para obter uma taxa de transmissão rápida e alta segurança.
Esta seção descreve como usar o Mongo Shell para se conectar a uma instância de conjunto de réplicas em uma rede privada.
O cliente de MongoDB pode se conectar a uma instância com uma conexão não criptografada ou uma conexão criptografada (SSL). Para melhorar a segurança da transmissão de dados, conecte-se a instâncias usando SSL.
Pré-requisitos
- Para obter detalhes sobre como criar e fazer logon em um ECS, consulte Compra de um ECS e Logon em um ECS.
- Instale o cliente de MongoDB no ECS. Para garantir a autenticação bem-sucedida, instale o cliente de MongoDB da mesma versão da instância de destino.
Para obter detalhes sobre como instalar um cliente de MongoDB, consulte Como instalar um cliente de MongoDB?
- O ECS pode se comunicar com a instância do DDS. Para mais detalhes, consulte Configuração de regras de grupo de segurança.
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.
- Faça logon no console de gerenciamento.
- Clique em no canto superior esquerdo e selecione uma região e um projeto.
- Clique em no canto superior esquerdo da página e escolha Databases > Document Database Service.
- Na página Instances, clique no nome da instância.
- No painel de navegação à esquerda, escolha Connections.
- Na área Basic Information, clique em ao lado do campo SSL.
- Faça upload do 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.
- No Linux, execute o seguinte comando:
- Conecte-se a uma instância do DDS.
Método 1: conexão de alta disponibilidade (recomendada)
O DDS fornece o endereço de conexão HA. Usar esse endereço para se conectar a uma instância do conjunto de réplicas melhora o desempenho de leitura/gravação de dados e evita erros relatados quando os dados são gravados do cliente após uma alternância primária/em espera.
Exemplo de comando:
./mongo "<Private HA connection address>" --ssl --sslCAFile<FILE_PATH> --sslAllowInvalidHostnames
Descrição do parâmetro:
- Private HA Connection Address: na página Instances, clique no nome da instância. A página Basic Information é exibida. Escolha Connections. Clique na guia Private Connection e obtenha o endereço de conexão da instância atual do campo Private HA Connection Address.
Figura 1 Obter o endereço de conexão HA privada
O formato do endereço de conexão privada é 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,192.168.xx.xx:8635/test?authSource=admin&replicaSet=replica
Preste atenção aos seguintes parâmetros no endereço HA privado:
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,192.168.xx.xx:8635
Endereço IP e porta do nó da instância do conjunto de réplicas
test
O nome do banco de dados de teste. Você pode definir esse parâmetro com base em seus requisitos de serviço.
authSource=admin&replicaSet=replica
- O banco de dados de autenticação do usuário rwuser deve ser admin. authSource=admin é corrigido no comando.
- replica em replicaSet=replica é o nome de um conjunto de réplicas. O conjunto de réplicas padrão do DDS da Huawei Cloud é replica.
- 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 privada.
Exemplo de comando:
./mongo "mongodb://rwuser:<password>@192.168.xx.xx:8635,192.168.xx.xx:8635/test?authSource=admin&replicaSet=replica" --ssl --sslCAFile/tmp/ca.crt --sslAllowInvalidHostnames
- Se você se conectar a uma instância por meio de um endereço HA privado, adicione aspas duplas antes e depois das informações de conexão.
- Para obter detalhes sobre a conexão HA, consulte Conexão a uma instância de conjunto de réplicas para separação de leitura e gravação e alta disponibilidade.
Se as seguintes informações forem exibidas, a instância será conectada com êxito:replica:PRIMARY>
Execute o seguinte comando para acessar o banco de dados local:
use local
Informação semelhante à seguinte foi exibida:
switched to db local
Execute o seguinte comando para consultar oplog de conjunto de réplicas:
db.oplog.rs.find()
Método 2: conexão HA privada (banco de dados e conta definidos pelo usuário)
Exemplo de comando:
./mongo "<Private HA connection address>" --ssl --sslCAFile<FILE_PATH> --sslAllowInvalidHostnames
Descrição do parâmetro:
- Private HA Connection Address: na página Instances, clique no nome da instância. A página Basic Information é exibida. Escolha Connections. Clique na guia Private Connection e obtenha o endereço de conexão da instância atual do campo Private HA Connection Address.
Figura 2 Obter o endereço de conexão HA privada
O formato do endereço de conexão HA privada obtido é o seguinte:
mongodb://rwuser:<password>@192.168.xx.xx:8635,192.168.xx.xx:8635/test?authSource=admin&replicaSet=replica
A tabela a seguir lista os parâmetros necessários no endereço HA privado.
Tabela 2 Informações de parâmetro Parâmetro
Descrição
rwuser
Nome de usuário do banco de dados. O valor padrão é rwuser. Você pode alterar o valor para o nome de usuário com base em seus requisitos de serviço.
<password>
Senha para o nome de usuário 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,192.168.xx.xx:8635
Endereço IP e porta do nó da instância do conjunto de réplicas
test
O nome do banco de dados de teste. Você pode definir esse parâmetro com base em seus requisitos de serviço.
authSource=admin&replicaSet=replica
- O banco de dados de autenticação do usuário rwuser é admin.
- Em replica in replicaSet=replica, replica indica que o tipo de instância é conjunto de réplicas e o formato não pode ser alterado.
NOTA:Se você usar um banco de dados definido pelo usuário para autenticação, altere o banco de dados de autenticação no endereço de conexão de alta disponibilidade para o nome do banco de dados definido pelo usuário. Além disso, substitua rwuser pelo nome de usuário criado no banco de dados definido pelo usuário.
- 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 privada.
Por exemplo, se você criar um banco de dados definido pelo usuário Database e um usuário test1 no banco de dados, o comando de conexão será o seguinte:
./mongo "mongodb://test1:<password>@192.168.xx.xx:8635,192.168.xx.xx:8635/Database?authSource=Database&replicaSet=replica" --ssl --sslCAFile/tmp/ca.crt --sslAllowInvalidHostnames
Método 3: conectar a um único nó.
Você também pode usar o endereço IP privado de um nó primário ou secundário para acessar a instância do conjunto de réplicas. Este método afeta o desempenho de leitura/gravação quando ocorre uma alternância primária/em espera.
Exemplo de comando:
./mongo --host <DB_HOST> --port <DB_PORT> -u <DB_USER> -p --authenticationDatabase admin --ssl --sslCAFile<FILE_PATH> --sslAllowInvalidHostnames
Descrição do parâmetro:
- DB_HOST é o endereço IP privado do nó primário ou em espera da instância a ser conectada.
Nó primário: você pode ler e escrever dados nele.
Nó secundário: você só pode ler dados dele.
Na página Instances, clique na instância para ir para a página Basic Information. Escolha Connections. Na guia Private Connection, obtenha o endereço IP do nó correspondente.
Figura 3 Obter o endereço IP de um nó
- DB_PORT é a porta do banco de dados. O valor 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 Private 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 privada.
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
Se as seguintes informações forem exibidas, o nó correspondente será conectado com sucesso:
- 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>
- Private HA Connection Address: na página Instances, clique no nome da instância. A página Basic Information é exibida. Escolha Connections. Clique na guia Private Connection e obtenha o endereço de conexão da instância atual do campo Private HA Connection Address.
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.
- Efetue logon no ECS.
- Conecte-se a uma instância do DDS.
Método 1: conexão de alta disponibilidade (recomendada)
O DDS fornece o endereço de conexão HA. O uso desse endereço para se conectar a uma instância do conjunto de réplicas melhora o desempenho de leitura/gravação e evita erros relatados quando os dados são gravados do cliente após uma alternância primária/em espera.
Exemplo de comando:
./mongo "<Private HA Connection Address>"
Private HA Connection Address: na página Instances, clique no nome da instância. A página Basic Information é exibida. Escolha Connections. Clique na guia Private Connection e obtenha o endereço de conexão da instância atual do campo Private HA Connection Address.
Figura 5 Obter o endereço de conexão HA privada
O formato do endereço de conexão privada é 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,192.168.xx.xx:8635/test?authSource=admin&replicaSet=replica
Preste atenção aos seguintes parâmetros no endereço HA privado:
Tabela 3 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,192.168.xx.xx:8635
Endereço IP e porta do nó da instância do conjunto de réplicas
test
O nome do banco de dados de teste. Você pode definir esse parâmetro com base em seus requisitos de serviço.
authSource=admin&replicaSet=replica
- O banco de dados de autenticação do usuário rwuser deve ser admin. authSource=admin é corrigido no comando.
- replica em replicaSet=replica é o nome de um conjunto de réplicas. O conjunto de réplicas padrão do DDS da Huawei Cloud é replica.
Exemplo de comando:
./mongo "mongodb://rwuser:<password>@192.168.xx.xx:8635,192.168.xx.xx:8635/test?authSource=admin&replicaSet=replica"
Se as seguintes informações forem exibidas, a instância será conectada com êxito:replica:PRIMARY>
Execute o seguinte comando para acessar o banco de dados local:
use local
Informação semelhante à seguinte foi exibida:
switched to db local
Execute o seguinte comando para consultar oplog de conjunto de réplicas:
db.oplog.rs.find()
Método 2: conexão HA privada (banco de dados e conta definidos pelo usuário)
Exemplo de comando:
./mongo "<Private HA Connection Address>"
Private HA Connection Address: na página Instances, clique no nome da instância. A página Basic Information é exibida. Escolha Connections. Clique na guia Private Connection e obtenha o endereço de conexão da instância atual do campo Private HA Connection Address.
Figura 6 Obter o endereço de conexão HA privada
O formato do endereço de conexão HA privada obtido é o seguinte:
mongodb://rwuser:<password>@192.168.xx.xx:8635,192.168.xx.xx:8635/test?authSource=admin&replicaSet=replica
A tabela a seguir lista os parâmetros necessários no endereço HA privado.
Tabela 4 Informações de parâmetro Parâmetro
Descrição
rwuser
Nome de usuário do banco de dados. O valor padrão é rwuser. Você pode alterar o valor para o nome de usuário com base em seus requisitos de serviço.
<password>
Senha para o nome de usuário 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,192.168.xx.xx:8635
Endereço IP e porta do nó da instância do conjunto de réplicas
test
O nome do banco de dados de teste. Você pode definir esse parâmetro com base em seus requisitos de serviço.
authSource=admin&replicaSet=replica
- O banco de dados de autenticação do usuário rwuser é admin.
- Em replica in replicaSet=replica, replica indica que o tipo de instância é conjunto de réplicas e o formato não pode ser alterado.
NOTA:Se você usar um banco de dados definido pelo usuário para autenticação, altere o banco de dados de autenticação no endereço de conexão de alta disponibilidade para o nome do banco de dados definido pelo usuário. Além disso, substitua rwuser pelo nome de usuário criado no banco de dados definido pelo usuário.
Por exemplo, se você criar um banco de dados definido pelo usuário Database e um usuário test1 no banco de dados, o comando de conexão será o seguinte:
./mongo "mongodb://test1:<password>@192.168.xx.xx:8635,192.168.xx.xx:8635/Database?authSource=Database&replicaSet=replica"
Método 3: conectar-se a um único nó.
Você também pode usar o endereço IP privado de um nó primário ou secundário para acessar a instância do conjunto de réplicas. Este método afeta o desempenho de leitura/gravação quando ocorre uma alternância primária/em espera.
Exemplo de comando:
./mongo --host <DB_HOST> --port <DB_PORT> -u <DB_USER> -p --authenticationDatabase admin
Descrição do parâmetro:
- DB_HOST é o endereço IP privado do nó primário ou em espera da instância a ser conectada.
Nó primário: você pode ler e escrever dados nele.
Nó secundário: você só pode ler dados dele.
Na página Instances, clique na instância para ir para a página Basic Information. Escolha Connections. Na guia Private Connection, obtenha o endereço IP do nó correspondente.
Figura 7 Obter o endereço IP de um nó
- DB_PORT é a porta do banco de dados. O valor 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 Private Connection e obtenha a porta no campo Database Port na área Basic Information.
Figura 8 Obter a porta
- DB_USER é o usuário do banco de dados. O valor padrão é rwuser.
Exemplo de comando:
./mongo --host 192.168.xx.xx --port 8635 -u rwuser -p --authenticationDatabase admin
Digite a senha da conta do banco de dados quando solicitado:
Enter password:
Se as seguintes informações forem exibidas, o nó correspondente será conectado com sucesso:
- 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>