Você pode usar o Data Management Service (DMS) ou o mongo shell para se conectar ao ApsaraDB for MongoDB. Este tópico aborda erros comuns de conexão do mongo shell e suas soluções.
Erro "connection attempt failed"
Sintoma:
#mongo --host ali12345678.mongodb.rds.aliyuncs.com:3717 --authenticationDatabase admin -u test -p xxx
MongoDB shell version: 3.2.3
DB Prefix:
connecting to: 10.1.2.8:3717/admin
2016-05-31T15:25:58.940+0800 W NETWORK Failed to connect to 10.*.*.8:3717 after 5000 milliseconds, giving up.
2016-05-31T15:25:58.943+0800 E QUERY Error: couldn't connect to server 10.*.*.8:3717 (10.1.2.8), connection attempt failed
at connect (src/mongo/shell/mongo.js:181:14)
at (connect):1:6 at src/mongo/shell/mongo.js:181
exception: connect failed
| Causa possível | Solução |
| A instância ECS e a instância do ApsaraDB for MongoDB estão em VPCs diferentes ou usam tipos de rede distintos. |
|
Use telnet para verifique a conectividade de rede. Exemplo: telnet dds-ali123456789.mongodb.rds.aliyuncs.com 3717
root@mongotest:~# telnet xxx.mongodb.rds.aliyuncs.com 3717
Trying xxx...
Connected to xxx.mongodb.rds.aliyuncs.com.
Escape character is '^]'.
Essa saída confirma que a resolução DNS foi bem-sucedida e que a porta 3717 está acessível.
Erro "Authentication failed"
Sintoma:
#mongo --host ali12345678.mongodb.rds.aliyuncs.com:3717 --authenticationDatabase admin -u test -p xxx
MongoDB shell version: 3.2.3
connecting to: 10.1.2.8:3717/test
2016-05-31T15:50:18.623+0800 E QUERY Error: 18 Authentication failed.
at DB._authOrThrow (src/mongo/shell/db.js:1271:32)
at (auth):6:8
at (auth):7:2 at src/mongo/shell/db.js:1271
exception: login failed
|
Causa possível |
Solução |
|
O nome de usuário do banco de dados está incorreto. |
Faça login no banco de dados com o nome de usuário correto. |
|
A senha do banco de dados está incorreta. |
Faça login no banco de dados com a senha correta. |
|
A conta não pertence ao banco de dados de autenticação especificado. |
Especifique o banco de dados de autenticação correto para a conta. Por exemplo, a conta root pertence ao banco de dados |
|
A versão do cliente está desatualizada. |
Atualize para o mongo shell 3,0 ou posterior. Instale o MongoDB. Para requisitos de versão do driver, consulte a Documentação de compatibilidade de drivers. |
Erro de rede ao execute "isMaster"
Sintoma:
#mongo --host ali12345678.mongodb.rds.aliyuncs.com:3717 --authenticationDatabase test -u test -p xxxxxx
MongoDB shell version v3.4.10
connecting to: mongodb:ali1234567878.mongodb.rds.aliyuncs.com:3717/
2018-12-18T14:26:11.946+0800 E QUERY [thread1] Error: network error while attempting to run command 'isMaster' on host 'ft12345678.mongodb.rds.aliyuncs.com:3717' :
connect@src/mongo/shell/mongo.js:237:13
@(connect):1:6
exception: connect failed
|
Causa possível |
Solução |
|
O endereço IP da instância ECS não consta na lista de permissões da instância do MongoDB. |
Adicione o endereço IP da instância ECS à lista de permissões. Configure uma lista de permissões para uma instância do ApsaraDB for MongoDB. |
Erro "Timeout while receiving message"
org.springframework.data.mongodb.UncategorizedMongoDbException: Timeout while receiving message; nested exception is com.mongodb.MongoSocketReadTimeoutException: Timeout while receiving message
|
Causa possível |
Solução |
|
Consultas lentas causam picos na utilização da CPU. |
Identifique consultas lentas e adicione índices. Analisar consultas lentas. |
|
O pool de conexões da aplicação está mal configurado (por exemplo, valores de timeout incorretos). |
Revise as configurações do pool de conexões. Consultar e limitar o número de conexões. |