Este tópico explica como solucionar falhas de conexão com uma instância RDS.
Visão geral
Para solucionar o problema, verifique as cinco áreas a seguir:
Etapa 1: Verificar o status da instância e as informações de conexão
Faça login no console do ApsaraDB for RDS. Na página Instances, verifique se o status da instância RDS está em execução. Se o estado da instância estiver anormal ou bloqueado, solucione o problema. Caso a instância esteja bloqueada, consulte Solucionar um bloqueio automático em uma instância ApsaraDB for RDS for MySQL causado por armazenamento insuficiente. Enquanto a instância permanecer bloqueada, sua aplicação não poderá ler ou gravar dados nela. Se o seu negócio permitir, reinicie a instância. Execute essa operação com cautela.
-
No código de conexão do banco de dados ou na ferramenta cliente, verifique as informações de conexão, incluindo os endpoints internos e públicos. Para obter mais informações, consulte Conectar-se a uma instância ApsaraDB for RDS.
Na página de detalhes da instância, clique em Database Connection no painel de navegação à esquerda. Na seção Endpoints, visualize os endpoints internos e públicos. Um endpoint tem o formato
rm-xxx.mysql.rds.aliyuncs.come a porta é3306.
Etapa 2: Verificar a configuração da lista de permissões
Certifique-se de ter adicionado o endereço IP correto do seu dispositivo local à lista de permissões de IP da instância RDS. Como teste, adicione temporariamente 0.0.0.0/0 à lista de permissões. Se a conexão for bem-sucedida, a lista de permissões original estava configurada incorretamente. Remova a entrada 0.0.0.0/0 e adicione o endereço IP correto. Para obter mais informações sobre como configurar uma lista de permissões, consulte Configurar uma lista de permissões de endereços IP. Observe os seguintes pontos sobre listas de permissões:
Por padrão, a lista de permissões na página contém apenas o endereço IP 127.0.0.1. Esse endereço impede que qualquer dispositivo acesse a instância RDS. Adicione o endereço IP do seu cliente, como uma instância ECS, à lista de permissões.
-
Se você adicionou 0.0.0.0, esse formato está incorreto. O formato correto é 0.0.0.0/0.
Nota0.0.0.0/0 permite acesso de qualquer endereço IP. Use isso com cautela.
-
Verifique se o modo de lista de permissões de alta segurança está ativado. Se esse modo estiver ativado, execute as seguintes verificações:
Ao utilizar um endpoint interno em uma Virtual Private Cloud (VPC), garanta que o endereço IP interno da instância ECS esteja adicionado a um grupo de lista de permissões de VPC.
Ao utilizar um endpoint interno em uma rede clássica, garanta que o endereço IP interno da instância ECS esteja adicionado a um grupo de lista de permissões de rede clássica.
Para conexões via rede pública, garanta que o endereço IP público do seu dispositivo esteja adicionado a um grupo de lista de permissões de rede clássica. Grupos de lista de permissões de VPC não se aplicam a conexões de rede pública.
-
O endereço IP público na lista de permissões pode não ser o endereço IP de saída real do seu dispositivo. Essa discrepância pode ocorrer pelos seguintes motivos:
O endereço IP público não é estático e pode mudar.
-
O endereço IP público fornecido por uma ferramenta ou site de consulta de IP pode ser impreciso. Para encontrar o endereço IP público de saída correto, consulte os seguintes tópicos:
Etapa 3: Verificar o desempenho do banco de dados
Analise os dados de monitoramento de desempenho da instância RDS em busca de recursos insuficientes.
-
Verifique o número atual de conexões.
O excesso de conexões ociosas ou ativas pode esgotar o número máximo de conexões. Consulte Especificações da instância primária para verificar o número máximo de conexões suportado pela especificação da sua instância.
Revise o código da sua aplicação para garantir que as conexões sejam configuradas e fechadas corretamente. Conexões não fechadas podem esgotar os recursos do RDS e atingir o limite de conexões. Para obter mais informações, consulte Lidar com um pool de conexões cheio para uma instância ApsaraDB for RDS for MySQL ou Lidar com um número excessivo de conexões para uma instância ApsaraDB for RDS for PostgreSQL.
-
Caso o crescimento normal dos negócios esteja causando o problema de conexão, atualize as especificações da instância.
NotaO processo de atualização pode causar uma desconexão transitória que dura cerca de 30 segundos. Para garantir a continuidade do serviço, implemente um mecanismo de reconexão automática na sua aplicação. Para obter mais informações, consulte Notas de uso.
Verifique se o tráfego de rede está normal ou excessivamente alto. Se o tráfego estiver alto, visualize os detalhes do log lento para identificar e otimizar consultas SQL lentas. Para obter mais informações, consulte Visualizar os detalhes dos logs de consultas SQL lentas.
Para outros problemas de desempenho, consulte Resolver alto uso de CPU, memória, armazenamento e IOPS.
Etapa 4: Verificar a rede e o cliente
-
Verificar a rede
Use o comando
pingoutelnetpara testar a conectividade com o endpoint interno ou público da instância RDS. Por exemplo, executetelnet <Public endpoint of the RDS instance> 3306. Se ocorrer um erro "Connection timed out" ou "Unable to connect", um firewall local pode estar bloqueando a porta. Verifique as configurações do seu firewall local. -
Verificar o cliente
Conecte-se ao banco de dados usando uma ferramenta cliente diferente para determinar se o problema é específico do cliente. Para obter mais informações, consulte os seguintes tópicos:
Acesso à rede interna de ECS para RDS
Se uma instância ECS não conseguir acessar uma instância RDS pela rede interna, consulte Resolver problemas de conexão de instância.
Aplicável a
ApsaraDB for RDS