Menu Docs
Página inicial do Docs
/ / /
Driver Rust

Solução de problemas de conexão

Nesta página

  • Erros de conexão do servidor
  • Verifique a string de conexão
  • Configurar firewall
  • Verifique o número de conexões
  • Erros de autenticação
  • Verifique a formatação das credenciais
  • Verificar o mecanismo de autenticação
  • Verificar se o usuário está no banco de dados de autenticação
  • Erros de resolução de DNS
  • Verifique a disponibilidade de implantação de banco de dados
  • Verifique os endereços de rede

Esta página oferece soluções potenciais para problemas que você pode encontrar ao usar o MongoDB Rust Driver para se conectar a uma implantação do MongoDB.

Observação

Esta página aborda apenas problemas de conexão. Se você encontrar qualquer outro problema com o MongoDB ou com o driver, acesse os seguintes recursos:

  • Tratamento de erros de operação para recomendações sobre como lidar com os diferentes tipos de erros que o driver levanta durante as operações

  • Página de Problemas e Ajuda para obter informações sobre como reportar bugs, contribuir para o driver e encontrar mais recursos

  • Fóruns daMongoDB Community para perguntas, discussões ou suporte técnico geral

  • A seção Perguntas frequentes (FAQ) para perguntas comuns e respostas correspondentes sobre o driver Rust

Quando ocorre um problema ao tentar se conectar a um servidor, o driver Rust retorna uma mensagem de erro. Se esse erro for semelhante à mensagem a seguir, isso indicará que o driver não pode se conectar a um sistema do MongoDB:

Error: Error { kind: ServerSelection { message: "Server selection timeout:
No available servers. Topology: { Type: Unknown, Servers: [ { Address:
127.0.0.1:27017, Type: Unknown, Error: Kind: I/O error: Connection refused
(os error 61), labels: {} } ] }" }, labels: {}, wire_version: None, source:
None }

As seções a seguir descrevem métodos que podem ajudar a resolver o problema.

Verifique se o nome do host e o número da porta na string de conexão estão corretos. Na mensagem de erro da amostra, o nome do host é 127.0.0.1 e a porta é 27017. O valor de porta padrão para uma instância do MongoDB Server é 27017, mas você pode configurar o MongoDB para escutar em outra porta.

Ao conectar a um conjunto de réplicas, inclua todos os hosts do conjunto de réplicas em sua connection string. Separe cada um dos hosts na connection string com uma vírgula. Isto permite ao condutor estabelecer uma conexão se um dos hosts não estiver acessível.

Para saber mais sobre como especificar vários hosts em um conjunto de réplicas, consulte a seção Conectar a um conjunto de réplicas do Guia de Conexão.

Se sua implantação do MongoDB estiver hospedada atrás de um firewall, certifique-se de que a porta na qual o MongoDB escuta esteja aberta no firewall. Se sua implantação escutar na porta de rede padrão, verifique se a porta 27017 está aberta no firewall. Se sua implantação escutar em uma porta diferente, certifique-se de que a porta esteja aberta no firewall.

Aviso

Não abra uma porta de firewall, a menos que tenha certeza de que é aquela que sua implantação do MongoDB escuta.

Cada instância do Client aceita um número máximo de conexões abertas simultâneas em seu pool de conexões. O parâmetro de configuração maxPoolSize define este valor e é configurado para 100 por padrão. Se o número de conexões abertas for igual a maxPoolSize, o servidor aguardará até que uma conexão fique disponível. Se esse tempo de espera exceder o valor de maxIdleTimeMS, o driver responderá com um erro.

Para saber mais sobre como os pools de conexões funcionam no driver, consulte Como funciona o pool de conexões no driver Rust? na página de perguntas frequentes.

O driver Rust pode não conseguir se conectar a um sistema MongoDB se a autorização não estiver configurada corretamente. Nesses casos, o driver levanta uma mensagem de erro semelhante à seguinte mensagem:

Error: Error { kind: Authentication { message: "SCRAM failure: bad auth :
authentication failed" }, labels: {}, wire_version: None, source: Some(Error
{ kind: Command(CommandError { code: 8000, code_name: "AtlasError", message:
"bad auth : authentication failed", topology_version: None }),
labels: {}, wire_version: None, source: None }) }

As seções a seguir descrevem métodos que podem ajudar a resolver o problema.

Uma das causas mais comuns de problemas de autenticação é a formatação de credenciais inválidas na string de conexão do MongoDB.

Dica

Para obter mais informações sobre string de conexão, consulte o guia Criar uma string de conexão .

Se sua string de conexão contiver um nome de usuário e senha, certifique-se de que eles estejam no formato correto.

Observação

Se o seu nome de usuário ou senha incluir qualquer um dos seguintes caracteres, você deverá codificar porcentagem isto:

: / ? # [ ] @

Use seu nome de usuário e senha codificados em porcentagem na sua string de conexão.

Verifique se as credenciais e o mecanismo de autenticação estão corretos. Você pode especificar suas credenciais de autenticação nas opções da sua string de conexão.

Alternativamente, você pode especificar suas credenciais de autenticação em uma estrutura Credential .

Para saber mais sobre autenticação, consulte o guia Mecanismos de autenticação.

Se utilizar um método de autenticação baseado em nome de usuário e senha, o nome de usuário deve ser definido no banco de dados de autenticação.

O banco de dados de autenticação padrão é o banco de dados admin. Para usar outro banco de dados de autenticação, especifique a opção authSource na string de conexão.

O exemplo a seguir instrui o MongoDB a usar o banco de dados users como o banco de dados de autenticação:

let uri = "mongodb://<username>:<password>@<hostname>:<port>/?authSource=users";
let client = Client::with_uri_str(uri).await?;

O driver do Rust pode não conseguir resolver sua conexão DNS. Quando isso acontece, você pode receber uma mensagem de erro semelhante à seguinte:

Error: Error { kind: DnsResolve { message: "sample message. type:
SRV class: IN" }, labels: {}, wire_version: None, source: None }

Se o driver relatar esse erro, tente os métodos nas seções a seguir para resolver o problema.

Se você estiver se conectando ao MongoDB Atlas e seu driver não conseguir encontrar o host DNS da implantação de banco de dados Atlas, a implantação de banco de dados poderá ser pausada ou excluída.

Certifique-se de que o sistema de banco de dados exista no Atlas. Se o cluster estiver pausado, você poderá retomar o cluster na UI do Atlas ou na interface da linha de comando do Atlas.

Para saber como retomar um cluster, consulte Retomar um cluster na documentação do Atlas.

Verifique se os endereços de rede ou nomes de host em sua string de conexão estão corretos.

Se a sua implantação estiver hospedada no MongoDB Atlas, você poderá seguir o tutorial Conectar ao Seu Cluster para localizar sua connection string do Atlas.

Voltar

Perguntas frequentes