Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/ / /
Manual da Biblioteca PHP
/

Solução de problemas de conexão

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

Observação

Esta página aborda apenas problemas de conexão. Se você encontrar outros problemas ao usar o MongoDB ou a biblioteca PHP, acesse os seguintes recursos:

  • A páginaProblemas e ajuda do para obter informações sobre como reportar bugs, contribuir para a biblioteca e encontrar mais recursos

  • Os fóruns da MongoDB Community para perguntas, discussões ou suporte técnico geral

Quando ocorre um problema ao tentar se conectar a um servidor, a biblioteca PHP retorna uma mensagem de erro. Se esse erro se assemelhar à seguinte mensagem, isso indica que a biblioteca não pode se conectar a um sistema do MongoDB :

No suitable servers found (`serverSelectionTryOnce` set):
[connection refused calling hello on 'localhost:27017']

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 no URI de conexão estão corretos. Na mensagem de erro de amostra, o nome do host é 127.0.0.1 e a porta é 27017. O valor de porta padrão para um sistema 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 seu URI de conexão. Separe cada um dos hosts na string de conexão com uma vírgula. Isso permite que a biblioteca estabeleça uma conexão se um dos hosts não estiver acessível.

Para saber como especificar vários hosts de conjunto de réplicas, consulte a seção Conjuntos de réplicas do guia Escolher um destino 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.

A biblioteca PHP pode não conseguir se conectar a uma implementação do MongoDB se a autorização não estiver configurada corretamente. Nesses casos, a biblioteca gera uma mensagem de erro semelhante à seguinte mensagem:

Authentication failed.

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 no URI de conexão do MongoDB .

Dica

Para saber mais informações sobre o uso de URIs de conexão, consulte URI de conexão no guia Criar um cliente MongoDB.

Se o seu URI de conexão contiver um nome de usuário e senha, certifique-se de que eles estejam formatados corretamente.

Observação

Você deve codificar os seguintes caracteres se eles aparecerem em seu nome de usuário ou senha:

: / ? # [ ] @

Use seu nome de usuário e senha codificados por porcentagem em seu URI 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 do URI de conexão.

Se você utilizar o parâmetro $uriOptions para especificar um mecanismo de autenticação, certifique-se de configurar a opção 'authMechanism' para o mecanismo correto. O código abaixo mostra como especificar o mecanismo de autenticação SCRAM-SHA-1 em um parâmetro de opções:

$uriOptions = [
'username' => '<username>',
'password' => '<password>',
'authSource' => '<authentication database>',
'authMechanism' => 'SCRAM-SHA-1',
];
$client = new MongoDB\Client(
'mongodb://<hostname>:<port>',
$uriOptions,
);

Para saber mais sobre como especificar mecanismos de autenticação, consulte a seção 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 no URI 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:

$uri = 'mongodb://<username>:<password>@<hostname>:<port>/?authSource=users';
$client = new MongoDB\Client($uri);

A biblioteca PHP pode não conseguir resolver sua conexão DNS. Quando isso acontece, você pode receber uma mensagem de erro semelhante à seguinte:

No suitable servers found (`serverSelectionTryOnce` set): [Failed to resolve '<host>'].

Se a biblioteca 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 seu URI 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 seu URI de conexão do Atlas.

Voltar

AWS Lambda

Nesta página