Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Solução de problemas de conexão

Esta página descreve problemas comuns de conexão e possíveis soluções.

To learn more about connecting to an Atlas cluster, see the Get Started with Atlas tutorial.

Observação

Se você é um cliente corporativo em busca de suporte, registre um ticket. Para obter suporte da comunidade, visite os Recursos da comunidade do MongoDB.

Você pode usar o assistente inteligente para ajudar a depurar seus erros de conexão.

O botão Connect do seu cluster pode estar desabilitado se o cluster estiver no estado de provisionamento. Seu cluster precisa de provisionamento quando for implantado pela primeira vez. Os clusters também devem passar por provisionamento quando você os dimensiona para cima ou para baixo.

O botão Connect será habilitado após o provisionamento do cluster pelo Atlas.

Para clusters gratuitos, o provisionamento leva menos de 15 segundos.

Para clusters Flex e clusters dedicados, o provisionamento pode levar até 10 minutos.

Antes de se conectar ao seu cluster do Atlas, verifique se você adicionou o endereço IP do seu host à lista de acesso IP do projeto do seu cluster. O Atlas permite conexões de cliente somente a partir de endereços IP e intervalos de endereços CIDR na Lista de acesso IP.

Para se conectar ao Atlas, você deve autenticar com um usuário do banco de dados MongoDB. Para criar um usuário de banco de dados para seu cluster, consulte Configurar usuários do banco de dados.

Se você criou um usuário e está com problemas para autenticar, tente o seguinte:

  • Verifique se você está usando o nome de usuário e a senha corretos para o usuário do banco de dados e se está se conectando ao cluster correto.

  • Verifique se você está especificando o banco de dados correto do authSource em sua connection string.

  • If you have a special character in your password, see Special characters in connection string password.

O Atlas define limites para conexões de entrada simultâneas para um cluster. Para clusters, isso se baseia na camada do cluster. Se você tentar se conectar quando estiver nesse limite, o MongoDB exibirá um erro informando connection refused because too many open connections.

Para uma comparação detalhada das camadas do cluster e suas conexões simultâneas máximas, consulte Limites de conexão e camada de cluster.

  • Feche todas as conexões abertas ao seu cluster que não estejam em uso no momento.

  • Escale seu cluster para um nível mais alto para permitir mais conexões simultâneas.

  • Reinicie seu aplicativo.

  • To prevent this issue in the future, consider using the maxPoolSize connection string option to limit the number of connections in the connection pool.

Para saber como corrigir esse problema, consulte Corrigir problemas de conexão.

O Atlas pode gerar uma connection string SRV otimizada para clusters fragmentados por meio dos balancers de carga do seu serviço de private endpoints. Quando você utiliza uma cadeia de conexão otimizada, o Atlas limita o número de conexões por mongos entre seu aplicativo e seu cluster fragmentado. As conexões limitadas por mongos melhoram o desempenho durante picos nas contagens de conexões.

Para saber mais sobre strings de conexão otimizadas para clusters fragmentados por trás de um ponto de extremidade privado, consulte Como posso otimizar o desempenho da conexão para clusters fragmentados usando pontos de extremidade privados?.

O Atlas utiliza um CDN para servir conteúdo rapidamente. Se sua organização usa um firewall, adicione os seguintes hospedar de CDN do Atlas à lista de permissões do firewall para evitar problemas de acesso à IU do Atlas:

  • https://assets.mongodb-cdn.com/

  • https://downloads.mongodb.com/ (necessário para a funcionalidade Data Explorer )

O cluster do Atlas opera na porta 27017. Você deve conseguir acessar essa porta para se conectar aos clusters. Além disso, certifique-se de que as portas apropriadas estejam abertas para o seguinte:

  • Nos clusters fragmentados, conceda acesso à porta 27016.

Você pode verificar sua capacidade de acessar uma porta usando o Outgoing port tester de terceiros.

Exemplo

Para verificar sua capacidade de alcançar a porta 27017, visite http://portquiz.net:27017.

Se não conseguir acessar essas portas, verifique as configurações do firewall do sistema e certifique-se de que elas não estejam bloqueando o acesso a essas portas.

Se você estiver usando uma string de conexão mongodb+srv:// e seu driver ou shell não conseguir encontrar o host do DNS do cluster do Atlas, o cluster poderá ser pausado ou excluído. Verifique se o cluster existe. Se for um cluster pausado, você poderá retomar o cluster, se necessário.

Observação

O Atlas pausa automaticamente os clusters gratuitos ociosos (anteriormente conhecido como M0) após 30 dias sem conexões.

Se você usar o MongoDB Compass para se conectar ao cluster e tiver problemas, consulte:

If you use a self-managed X.509 certificate or an auto-generated X.509 certificate managed by Atlas to authenticate to the MongoDB database, when you connect to MongoDB Compass, you must:

  1. No MongoDB Compass, escolha Fill in connection fields individually.

  2. No menu suspenso Authentication, selecione X.509.

  3. Selecione More Options.

  4. No menu suspenso SSL, selecione Server and Client Validation.

  5. Adicione o mesmo caminho para o certificado gerenciado Atlas baixado ou o certificado autogerenciado (dependendo do qual você utiliza) para cada um destes campos: Certificate Authority, Client Certificate e Client Private Key.

To learn more, see Connect to MongoDB in the MongoDB Compass documentation.

The connection string format you use to connect to Atlas depends on several factors, including:

Verifique sua cadeia de conexão em um ambiente de teste antes de colocá-la em produção.

Se sua senha incluir caracteres especiais e você estiver usando sua senha no URI de cadeia de conexão, codifique os caracteres especiais.

Ao tentar atualizar uma senha com um caractere especial que requer codificação percentual, a seguinte mensagem de erro aparece:

This password contains special characters which will be URL-encoded.

Observação

Os seguintes caracteres e o caractere de espaço devem ser convertidos usando a codificação percentual se incluídos em um nome de usuário ou senha:

: / ? # [ ] @ ! $ & ' ( ) * , ; = %

Por exemplo, se a sua senha no texto sem formatação for p@ssw0rd'9'!, você precisará codificar sua senha como:

p%40ssw0rd%279%27%21

➤ Use o menu suspenso Selecione a linguagem para definir a linguagem do exemplo de codificação nesta seção.


1package main
2
3import (
4 "context"
5 "fmt"
6 "net/url"
7
8 "go.mongodb.org/mongo-driver/bson"
9 "go.mongodb.org/mongo-driver/mongo"
10 "go.mongodb.org/mongo-driver/mongo/options"
11)
12
13func main() {
14 username := "<username>"
15 password := "<password>"
16 cluster := "<clusterName>"
17 authSource := "<authSource>"
18 authMechanism := "<authMechanism>"
19
20 uri := "mongodb+srv://" + url.QueryEscape(username) + ":" +
21 url.QueryEscape(password) + "@" + cluster +
22 "/?authSource=" + authSource +
23 "&authMechanism=" + authMechanism
24
25 client, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(uri))
26 if err != nil {
27 panic(err)
28 }
29 defer client.Disconnect(context.TODO())
30
31 collection := client.Database("<dbName>").Collection("<collName>")
32
33 cursor, err := collection.Find(context.TODO(), bson.D{})
34 if err != nil {
35 panic(err)
36 }
37
38 var results []bson.D
39 if err = cursor.All(context.TODO(), &results); err != nil {
40 panic(err)
41 }
42 for _, result := range results {
43 fmt.Println(result)
44 }
45}

Importante

Do not encode special characters in your password if you are using your password outside of a connection string URI (for example, pasting it into mongosh).

If you see this error message, your driver is likely out of date. For instructions on updating your driver, refer to your specific Driver Documentation.

When you use the DNS seed list connection string format to connect to Atlas, you might see the following error:

DNSHostNotFound: Failed to look up service "<MongoDB service name>"

Esse erro pode ocorrer ao usar o servidor DNS padrão que seu ISP fornece. Esse servidor DNS pode não suportar pesquisas SRV que o formato de string de conexão da lista de sementes do DNS usa.

Para resolver o problema, você pode tentar alterar sua configuração de DNS para usar um servidor DNS público.

Exemplo

Você pode configurar as configurações da sua rede para usar o Google Public DNS em vez dos servidores DNS do seu ISP.

Depois de atualizar as configurações de rede para usar um servidor DNS público, conecte-se ao cluster.

You might see the following error when using the DNS seed list connection string format (mongodb+srv://) to connect to Atlas from one of the MongoDB Database Tools (mongodump, mongorestore, etc):

lookup nta8e.mongodb.net on 123.45.67.8:27017: cannot unmarshal DNS message

Em caso afirmativo, use uma das seguintes opções de conexão:

  • Use the --uri option with a non-SRV connection string (mongodb://).

  • Use a opção --host para especificar o hospedar ao qual se conectar.

When using the DNS seed list connection string format (mongodb+srv://) with a driver or Compass, you may receive in the following error:

Error: querySrv ECONNREFUSED _mongodb._tcp.<SRV Record>

Para solucionar esse erro, conclua as etapas a seguir.

1
  1. Siga as etapas 1a6 em Conectar seu aplicativo.

  2. Selecione o Driver e a Versão.

  3. Sob Use this connection string in your application, o nome do host SRV aparece na string de conexão mongodb+srv://. É a parte do nome do host que termina com .mongodb.net.

    Por exemplo, cluster0.dfget.mongodb.net.

2

No mesmo modal do Connect:

  1. Em Use this connection string in your application, desative a opção SRV Connection String.

  2. A string de conexão padrão (mongodb://) é exibida, listando o nome do host e o número da porta de cada nó.

    A string de conexão do cluster pode ter uma variedade de nomes de host e portas, dependendo da topologia e do método de conexão. Para aprender mais sobre pontos de extremidade privados, consulte Configurar endpoints privados.

3

Execute os seguintes comandos em um terminal ou prompt de comando no servidor de aplicação que está enfrentando o problema:

  1. Teste de resolução DNS SRV

    Para Linux ou macOS, execute o seguinte comando:

    dig SRV _mongodb._tcp.<DNS SRV name>

    Para Windows, execute o seguinte comando:

    nslookup -debug -q=SRV _mongodb._tcp.<DNS SRV name>

    Na SEÇÃO DE RESPOSTA da resposta, você deve ver um resultado para cada um dos nós no cluster. Por exemplo:

    ;; ANSWER SECTION:
    _mongodb._tcp.gcluster0.dfget.mongodb.net. 60 IN SRV 0 0 27017 cluster0-shard-00-00.dfget.mongodb.net.
    _mongodb._tcp.gcluster0.dfget.mongodb.net. 60 IN SRV 0 0 27017 cluster0-shard-00-01.dfget.mongodb.net.
    _mongodb._tcp.gcluster0.dfget.mongodb.net. 60 IN SRV 0 0 27017 cluster0-shard-00-02.dfget.mongodb.net.
  2. Testes de resolução de nome de host de nó DNS

    Para cada nome de host no cluster:

    Para Linux ou macOS, execute o seguinte comando:

    dig <Node Hostname>

    Para Windows, execute o seguinte comando:

    nslookup -debug -q=A <Node Hostname>

    Na SEÇÃO DE RESPOSTA da resposta, você deve ver o endereço IP para o qual o nome de host do DNS foi resolvido. Por exemplo:

    ;; ANSWER SECTION: cluster0-shard-00-00.ag9in.mongodb.net. 60 IN A 10.10.10.10
  3. Teste de ping

    Observação

    As solicitações ICMP podem ser bloqueadas pelo provedor de nuvem em conexões de pontos de extremidade privados.

    Para cada nome de host no cluster:

    Para Linux ou macOS, execute o seguinte comando:

    ping -c 10 <Node Hostname>

    Para Windows, execute o seguinte comando:

    ping /n 10 <Node Hostname>

    Revise a saída para verificar se há perda de pacotes e tempo de ida e volta (RTT). Alta perda de pacotes ou latência pode indicar problemas de rede entre seu servidor e os nós de cluster.

  4. Teste de conexão de rede de ponta a ponta

    Para Linux ou macOS, execute o seguinte comando:

    nc -zv <Node Hostname> <Node Port Number>

    Para Windows, execute o seguinte comando:

    Test-NetConnection -Port <Node Port Number> -InformationLevel "Detailed" -ComputerName "<Node Hostname>"
4

Depois de executar os testes na etapa anterior, use a orientação a seguir para resolver o erro de conexão com base na falha do teste:

  • Teste de resolução DNS SRV falha: Seu resolvedor DNS não oferece suporte a pesquisas de registro SRV, ou o tráfego DNS de saída está bloqueado. Experimente uma das seguintes opções:

    • Switch to the non-SRV connection string format (mongodb://) instead of mongodb+srv://. To get the non-SRV connection string, open the Connect modal in Atlas, select your driver and version, and turn off the SRV Connection String toggle under Use this connection string in your application.

    • Configure your network to use a public DNS server that supports SRV lookups, such as Google Public DNS.

  • O teste de resolução de nome de host do nó DNS falha: o resolvedor de DNS não consegue resolver os nomes de host de nós individuais. Se você usar pontos de extremidade privados, verifique se a configuração de DNS do endpoint privado está correta.

  • Falha no teste de ping: o tráfego CIMP pode estar bloqueado por um firewall ou pelo provedor de nuvem. Isso não indica necessariamente um problema de conexão TCP. Faça o teste de conexão de rede ponto a ponto para verificar a conectividade TCP na porta 27017.

  • O teste de conexão de rede de ponta a ponta falha: um firewall ou política de rede está bloqueando o acesso à porta 27017 nos nomes de host do nó. Verifique o seguinte:

    • Adicione o endereço IP do servidor de aplicativo à lista de acesso IPdo cluster.

    • Permita conexões TCP de saída na porta 27017 por meio do firewall.

  • All tests pass but the error persists: The issue may be in your driver version. Older driver versions might not correctly support the SRV connection string format. Update your driver to the latest version. You can also switch to the standard (non-SRV) connection string format (mongodb://) by turning off the SRV Connection String toggle under Use this connection string in your application in the Connect modal.