Este guia ajuda você a diagnosticar e corrigir falhas de conexão em instâncias ApsaraDB RDS. Comece testando a conectividade básica e localize sua mensagem de erro nas seções abaixo.
Teste a conectividade primeiro
Antes de verificar detalhes de configuração, confirme se o cliente consegue alcançar a instância RDS na porta do banco de dados.
Linux/macOS:
# Replace <endpoint> with your RDS endpoint and <port> with the database port (typically 3306 for MySQL)
nc -zv <endpoint> <port>
Um resultado bem-sucedido se parece com:
Connection to rm-xxx.mysql.rds.aliyuncs.com 3306 port [tcp/mysql] succeeded!
Windows:
telnet <endpoint> <port>
Usetelnetouncem vez depingpara testar a conectividade. Você pode executar o comandopingpara visualizar o endereço IP atual de uma instância RDS, mas esse endereço pode mudar durante uma migração ou um failover entre primário e secundário — sempre se conecte usando o endpoint, não o endereço IP.
Se o teste de conectividade falhar, o problema provavelmente é uma questão de configuração de rede (lista de permissões, Virtual Private Cloud (VPC) ou grupo de segurança). Se o teste for bem-sucedido, mas a aplicação ainda não conseguir se conectar, a causa provável é autenticação ou configuração no nível da aplicação.
Erros do ApsaraDB RDS for MySQL e ApsaraDB RDS for MariaDB
|
Mensagem de erro |
Causa |
Solução |
|
|
Rede inacessível — o cliente não consegue alcançar a instância RDS. |
Verifique se a instância Elastic Compute Service (ECS) e a instância RDS estão na mesma região, usam o mesmo tipo de rede, pertencem à mesma VPC e se o endereço IP privado da instância ECS está na lista de permissões de endereços IP da RDS. Consulte Soluções. |
|
|
Lista de permissões mal configurada — o endereço IP do cliente não consta na lista de permissões de IPs da instância RDS. |
Verifique a lista de permissões de endereços IP da instância RDS. |
|
|
Credenciais inválidas — o nome de usuário ou a senha está incorreto. |
Confira o nome de usuário e a senha na string de conexão. Veja Credenciais inválidas abaixo para causas comuns. |
|
|
Falha na resolução de DNS — o servidor Domain Name System (DNS) não consegue resolver o endpoint da RDS. |
Consulte Falha na resolução de DNS abaixo. |
|
|
Plug-in de autenticação ausente — o MySQL não consegue carregar o plug-in |
Veja Plug-in de autenticação ausente abaixo. |
|
|
Conexão ociosa fechada — o servidor encerrou uma conexão inativa após o término do tempo limite. |
Ajuste |
|
|
Acesso root remoto negado — o MySQL permite logins de |
Consulte Acesso root remoto negado abaixo. |
|
|
Conflito de bloco CIDR — o bloco CIDR interno da instância RDS entra em conflito com outro serviço, como o ECS. |
Credenciais inválidas
Verifique o nome de usuário e a senha na string de conexão. Duas causas comuns:
Inexistência de conta root: O ApsaraDB RDS não fornece contas
root. Em vez disso, crie uma conta dedicada.Caracteres especiais na senha: Caso a senha contenha caracteres especiais, coloque-a entre aspas simples:
-p 'your_password'.
Se você esqueceu a senha, faça login no console do ApsaraDB RDS, acesse a página Accounts da instância e redefina a senha. A nova senha entra em vigor alguns minutos após a redefinição.
Falha na resolução de DNS
-
Verifique se o endpoint está correto. O formato é
rm-xxx.xxx.rds.aliyuncs.com. Causas comuns de endpoint incorreto:Erro de digitação no endpoint.
O endpoint público foi liberado manualmente.
A aplicação trunca o endpoint porque ele excede o comprimento máximo de string permitido.
-
Se o endpoint estiver correto, mas o erro persistir, atualize o endereço do servidor DNS:
Rede clássica:
10.143.22.116ou10.143.22.118VPC:
100.100.2.136ou100.100.2.138Internet:
223.5.5.5ou223.6.6.6
Execute o comando ping para visualizar o endereço IP atual de uma instância RDS. No entanto, conecte-se à instância RDS usando seu endpoint em vez do endereço IP, pois o IP pode mudar quando a instância for migrada ou quando ocorrer um failover entre primário e secundário.
Plug-in de autenticação ausente
Cliente MySQL 8.0: O plug-in caching_sha2_password está ausente devido à configuração do sistema ou ao método de instalação. Escolha uma das seguintes correções:
-
Altere a conta para usar
mysql_native_password:ALTER USER 'your_username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password'; FLUSH PRIVILEGES; -
Reinstale o pacote do servidor MySQL:
sudo yum reinstall mysql-server
Cliente MySQL 5.x: A versão do cliente não suporta caching_sha2_password. Instale o MySQL 8.0:
sudo yum install mysql-server
Acesso root remoto negado
O MySQL permite logins de root apenas a partir de localhost. Crie uma conta dedicada restrita ao endereço IP da instância ECS:
-- Create a dedicated account allowed only from the ECS instance IP
CREATE USER '<user_name>'@'<172.16.XX.XX>' IDENTIFIED BY '<password>';
-- Grant only the permissions needed (Principle of Least Privilege)
GRANT SELECT, INSERT, UPDATE, DELETE ON <database_name>.* TO '<user_name>'@'<172.16.XX.XX>';
FLUSH PRIVILEGES;
Erros de conexão do Data Management (DMS)
Após redefinir a senha da conta, faça login novamente no DMS com a nova senha.
|
Mensagem de erro |
Causa |
Solução |
|
|
Instância bloqueada — a instância expirou ou ficou sem capacidade de armazenamento. |
Verifique o status da instância no console do ApsaraDB RDS. Se estiver expirada, renove a instância. Se o armazenamento estiver esgotado, expanda a capacidade de armazenamento. |
|
|
Sem permissão de login — você não é o proprietário da instância e o proprietário não concedeu acesso a você. |
|
|
|
MySQL auto-gerenciado inacessível pelo DMS — causas comuns: o firewall na instância ECS ou no host local bloqueia o DMS, o grupo de segurança não permite tráfego do DMS, o banco de dados MySQL auto-gerenciado não está em execução ou o banco de dados permite apenas logins de |
Verifique as regras de firewall no host, adicione o endereço IP do servidor DMS ao grupo de segurança da ECS, certifique-se de que o banco de dados MySQL auto-gerenciado está em execução e use a conta |
|
|
Limite de conexões atingido — o número de conexões ativas atingiu o limite superior. |
|
|
|
Bloco CIDR do DMS não incluído na lista de permissões — o bloco CIDR do servidor DMS não está na lista de permissões de IPs da RDS. |
Adicione o bloco CIDR do servidor DMS à lista de permissões. |
Problemas de conexão de rede interna entre ECS e RDS
Configuração da lista de permissões
Adicione o endereço IP private da instância ECS à lista de permissões de IPs da RDS — não o endereço IP público. Adicionar o endereço IP público não habilitará a conectividade pela rede interna.
Para obter as etapas de configuração da lista de permissões, consulte Configurar uma lista de permissões de endereços IP para uma instância ApsaraDB RDS for MySQL.
Requisito de mesma região
As conexões de rede interna exigem que a instância ECS e a instância RDS estejam na mesma região. Instâncias em zonas diferentes da mesma região podem se comunicar pela rede interna.
Se as instâncias estiverem em regiões diferentes, escolha uma das seguintes opções:
|
Opção |
Detalhes |
Observações |
|
Mover para a mesma região (recomendado) |
Libere a instância ECS e adquira uma nova na região da RDS, ou libere a instância RDS e adquira uma nova na região da ECS. |
Melhor desempenho e segurança. |
|
Usar o endpoint público |
Conecte-se por meio do endpoint público da RDS. Consulte Solicitar ou liberar um endpoint público. |
Menor desempenho, segurança e estabilidade. Não recomendado para produção. |
Incompatibilidade de tipo de rede
Tanto a instância ECS quanto a instância RDS devem usar o mesmo tipo de rede (ambas VPC ou ambas rede clássica).
A instância ECS está em uma VPC e a instância RDS está na rede clássica:
|
Opção |
Detalhes |
Observações |
|
Migrar a RDS para a VPC (recomendado) |
Altere o tipo de rede da instância RDS para corresponder à VPC da ECS. |
As VPCs oferecem melhor segurança do que a rede clássica. |
|
Adquirir uma instância ECS na rede clássica |
Compre uma nova instância ECS na rede clássica. |
Não é possível migrar instâncias ECS de uma VPC para a rede clássica. |
|
Usar o endpoint público |
Conecte-se por meio do endpoint público da RDS. |
Menor desempenho, segurança e estabilidade. Não recomendado para produção. |
A instância ECS está na rede clássica e a instância RDS está em uma VPC:
|
Opção |
Detalhes |
Observações |
|
Migrar a ECS para a VPC (recomendado) |
Migre a instância ECS para a VPC. Para encontrar o ID da VPC, clique em View Details à direita do parâmetro Network Type na página de detalhes da instância RDS. |
As VPCs oferecem melhor segurança do que a rede clássica. |
|
Alterar o tipo de rede da RDS para rede clássica |
Mude a instância RDS para a rede clássica. |
As VPCs são mais seguras — use esta opção apenas como último recurso. |
|
Usar o ClassicLink |
Ative o ClassicLink para conectar a instância ECS da rede clássica à instância RDS na VPC. Se os problemas persistirem após ativar o ClassicLink, consulte Solucionar problemas de conexão do ClassicLink. |
|
|
Usar o endpoint público |
Conecte-se por meio do endpoint público da RDS. |
Menor desempenho, segurança e estabilidade. Não recomendado para produção. |
A instância ECS e a instância RDS estão em VPCs diferentes:
|
Opção |
Detalhes |
Observações |
|
Migrar a RDS para a VPC da ECS (recomendado) |
Altere a VPC e o vSwitch da instância RDS. |
Solução mais simples. |
|
Criar uma instância CEN |
Crie uma instância Cloud Enterprise Network (CEN) para conectar as duas VPCs. |
Útil quando a migração da instância RDS não é viável. |
|
Usar o endpoint público |
Conecte-se por meio do endpoint público da RDS. |
Menor desempenho, segurança e estabilidade. Não recomendado para produção. |
Se a instância ECS e a instância RDS estiverem na mesma VPC e na mesma região, a instância ECS se conectar com sucesso ao endpoint público, mas não ao endpoint interno, e tantopingquantotelnetfalharem, consulte O que fazer se uma instância ECS não conseguir se conectar a uma instância RDS devido a problemas de roteamento?
Problemas de conexão com a Internet
Verifique se você está usando o endpoint público
Visualize o endpoint público na página Database Connection no console do ApsaraDB RDS.
Adicione o endereço IP do cliente à lista de permissões
Adicione o endereço IP público da máquina local à lista de permissões de IPs da RDS. Se adicionar 0.0.0.0/0 resolver temporariamente o problema, significa que o endereço IP adicionado originalmente estava incorreto.
Endereços IP públicos podem mudar dinamicamente, o que interrompe a conexão. Para uma conexão estável, use a rede interna ou adicione um bloco CIDR que cubra o intervalo possível de IPs.
Para obter as etapas de configuração da lista de permissões, consulte Configurar uma lista de permissões de endereços IP para uma instância RDS for MySQL.
Para solução de problemas adicionais, consulte Por que não consigo me conectar à minha instância ApsaraDB RDS for MySQL ou ApsaraDB RDS for MariaDB a partir de um servidor local pela Internet?
Conexão entre contas diferentes
Se a instância ECS e a instância RDS pertencerem a contas Alibaba Cloud diferentes, escolha uma das seguintes opções:
|
Opção |
Detalhes |
Observações |
|
Conexão de peering de VPC (recomendado) |
Configure uma conexão de peering de VPC entre as duas contas. |
Melhor segurança e desempenho para acesso entre contas. |
|
Função RAM e política RAM |
Conceda acesso entre contas usando funções RAM. |
Útil para controle de acesso refinado. |
|
Endpoint público |
Conecte-se por meio do endpoint público da RDS. Consulte Solicitar ou liberar um endpoint público. |
Menor desempenho, segurança e estabilidade. Não recomendado para produção. |