Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ Relational Database Service/ Perguntas frequentes/ Conexão de banco de dados/ O que fazer se não conseguir me conectar a uma instância de BD do RDS?
Atualizado em 2023-08-29 GMT+08:00

O que fazer se não conseguir me conectar a uma instância de BD do RDS?

Possíveis causas

Tente o seguinte:

  1. Verifique se a instância de BD está disponível.

    Por exemplo, se o sistema estiver com defeito, a instância de BD estiver anormal ou a instância de BD ou a tabela estiver bloqueada.

  2. (Comum) Verifique se a conexão do cliente está correta.
    • Se você se conectar a uma instância de BD em uma rede privada, verifique se a instância de BD e o ECS estão na mesma região e VPC.
    • Se você se conectar a uma instância de BD em uma rede pública, vincule um EIP à instância de BD e, em seguida, conecte-se à instância de BD por meio do EIP.
  3. Verifique o método de conexão.

    Execute um dos seguintes comandos de exemplo para ativar ou desativar o SSL:

    • SSL ativado: mysql -h 172.16.0.31 -P 3306 -u root -p --ssl-ca=/tmp/ca.pem
    • SSL desativado: mysql -h 172.16.0.31 -P 3306 -u root -p
  4. Verifique se os parâmetros do comando de conexão estão corretos.

    Por exemplo, verifique se os seguintes parâmetros estão configurados corretamente: connection address, port number, username, password e connection method.

  5. (Comum) Verifique se a conectividade de rede está normal

    Para uma conexão de rede privada:

    1. Verifique se o ECS e a instância do BD estão na mesma região e VPC.
    2. Verifique as regras do grupo de segurança.

      Para acessar instâncias de BD em um grupo de segurança diferente do ECS, adicione uma regra de entrada para o grupo de segurança.

    3. No ECS, verifique se a porta da instância de BD pode ser conectada.

    Para uma conexão de rede pública:

    1. Verifique as regras do grupo de segurança.

      Para acessar instâncias de BD em um grupo de segurança de uma rede pública, adicione uma regra de entrada para o grupo de segurança.

    2. Verifique as regras de ACL da rede.
    3. Faça o ping dos ECSs na mesma região para a instância de BD.
  6. (Comum) Verifique se o número de conexões com a instância de BD atinge o limite superior.

    Se houver um número excessivo de conexões de banco de dados, as aplicações podem não ser conectadas.

  7. (Comum) Verifique se a instância de BD está no estado de armazenamento completo.

    Se a instância de BD estiver no estado Storage full, o desempenho de leitura e gravação de dados será afetado.

  8. Exiba as mensagens de erro de conexão comuns

    Encontre soluções correspondentes com base em mensagens de erro de conexão.

Localização de falhas

Figura 1 Localizar falhas de conexão de instância
  1. Verifique se a instância de BD está disponível.

    Verifique se a instância de BD está no estado Available.

    Possível causa: o sistema do RDS está com defeito, a instância de BD está anormal ou a instância de BD ou uma tabela está bloqueada.

    Solução: se a instância de BD for anormal, reinicialize-a.

    Figura 2 Verificar o status da instância de BD

  2. Verifique se a conexão do cliente está correta.

    Instale um cliente de mecanismo cuja versão seja pelo menos tão nova quanto a versão da instância de BD.

    Para obter detalhes sobre como se conectar a uma instância de BD em uma rede privada ou pública, consulte Um servidor externo pode acessar o banco de dados do RDS?

    Tabela 1 Modelo de conexão

    Método de conexão

    Cenário

    Exemplo

    Rede privada

    Um endereço IP privado é fornecido por padrão.

    Se suas aplicações forem implementadas em um ECS que esteja na mesma região e VPC que a instância de BD, conecte-se ao ECS e à instância de BD por meio de um endereço IP privado.

    RDS for MySQL:

    mysql -h <private IP address> -P 3306 -u root -p --ssl-ca=/tmp/ca.pem

    Rede pública

    Se não for possível acessar a instância de BD por meio de um endereço IP privado, vincule um EIP à instância de BD e, em seguida, conecte-se à instância de BD por meio do EIP.

    Para obter detalhes de preços do EIP, consulte Detalhes de cobrança do EIP.

    RDS for MySQL:

    mysql -h <EIP> -P 3306 -u root -p --ssl-ca=/tmp/ca.pem

  3. Verifique o método de conexão.
    • Conexão SSL é recomendada. Ative o SSL na página Connectivity & Security e carregue o certificado no ECS.

      mysql -h 172.16.0.31 -P 3306 -u root -p --ssl-ca=/tmp/ca.pem

      Figura 3 Ativar SSL

    • Conexão comum: desative o SSL na página Basic Information.

      mysql -h 172.16.0.31 -P 3306 -u root -p

  4. Verifique os parâmetros no comando usado para conectar.

    Certifique-se de que o endereço de conexão, a porta, o nome de usuário e a senha e o método de conexão SSL estejam corretos e tente se conectar à instância de BD novamente.

    Se você usar uma conexão privada com SSL ativado, execute mysql -h 172.16.0.31 -P 3306 -u root -p --ssl-ca=/tmp/ca.pem.

    • Endereço IP

      Na guia Private Connection da página Connectivity & Security, obtenha o endereço IP flutuante na área Connection Information.

      Figura 4 Endereço IP flutuante

    • Porta do banco de dados

      Na guia Private Connection da página Connectivity & Security, obtenha a porta do banco de dados na área Connection Information.

    • Credenciais de logon raiz

      Certifique-se de ter inserido a senha de raiz corretamente.

    • Certificado

      Obtenha o nome do certificado SSL no diretório em que o comando é executado.

    Se você usar uma conexão pública com SSL ativado, execute o seguinte comando de exemplo: mysql -h EIP -P 3306 -u root -p --ssl-ca=/tmp/ca.pem

    • Endereço IP

      Na guia Public Connection da página Connectivity & Security, obtenha o EIP na área Connection Information.

      Figura 5 EIP
    • Porta do banco de dados

      Na guia Public Connection da página Connectivity & Security, obtenha a porta do banco de dados na área Connection Information.

    • Credenciais de logon raiz

      Certifique-se de ter inserido a senha de raiz corretamente.

    • Certificado

      Obtenha o nome do certificado SSL no diretório em que o comando é executado.

  5. Verifique a conexão de rede.
    Conexão de rede privada
    1. Verifique se o ECS e a instância do BD estão na mesma região e VPC.
      Figura 6 Verificar a VPC de um ECS
      Figura 7 Verificar a VPC de uma instância do RDS
    2. Verifique as regras do grupo de segurança.
      • Se Destination não for 0.0.0.0/0 e Protocol & Port não for All na página Outbound Rules do ECS, adicione o endereço IP flutuante e a porta da instância do RDS às regras de saída.
        Figura 8 Grupo de segurança do ECS
      • Se Source não for 0.0.0.0/0 e o Protocol & Port não for All na página Inbound Rules da instância do RDS, adicione o endereço IP e a porta do ECS às regras de entrada.
        Figura 9 Grupo de segurança da instância do RDS
    3. No ECS, verifique se a porta da instância de BD pode ser conectada.
      telnet <IP address> <port number>
      • Se a conexão for normal, a rede é normal.
      • Se a conexão falhar, crie um tíquete de serviço para entrar em contato com o atendimento ao cliente para obter assistência.

    Conexão de rede pública

    1. Verifique as regras do grupo de segurança.
      • Se Destination não for 0.0.0.0/0 e Protocol & Port não for All na página Outbound Rules do ECS, adicione o EIP e a porta da instância do RDS às regras de saída.
        Figura 10 Grupo de segurança do ECS
      • Se Source não for 0.0.0.0/0 e o Protocol & Port não for All na página Inbound Rules da instância do RDS, adicione o endereço IP e a porta do ECS às regras de entrada.
        Figura 11 Grupo de segurança da instância do RDS
    2. Verifique as regras de ACL de rede.
      1. Vá para ACLs de rede.
      2. Verifique se a NIC vinculada ao EIP está na sub-rede associada à ACL de rede.
      3. Verifique se a ACL de rede está habilitada.

        Se sim, adicione uma regra ICMP para permitir o tráfego.

      A regra de ACL de rede padrão nega todos os pacotes de entrada e de saída. Essa regra padrão ainda é aplicada mesmo se a ACL da rede estiver desativada.

    3. Faça o ping da instância de BD em um ECS na mesma região.

      Se você não conseguir executar o ping do EIP da instância do RDS a partir de um ECS, tente fazer o ping a partir de outro ECS na mesma região. Se o EIP pode ser pingado, a rede é normal. Nesse caso, crie um tíquete de serviço para entrar em contato com o atendimento ao cliente.

  6. Verifique se há muitas conexões com a instância de BD.

    Método de verificação:

    1. Execute show variables like '%max%connections%'; para exibir o número de conexões de instância.

      • max_connections: o número máximo de clientes que podem ser conectados ao mesmo tempo. Se este parâmetro for definido como default, o número máximo de clientes dependerá da quantidade de memória configurada. Para mais detalhes, consulte Qual é o número máximo de conexões com uma instância de BD do RDS?.
      • max_user_connections: o número máximo de conexões simultâneas permitidas para uma conta específica do RDS for MySQL.
    2. Verifique se o total de conexões e conexões ativas atuais atingiram os limites superiores consultando Exibição de métricas de monitoramento. Determine se as conexões devem ser liberadas.

    Possível causa: se houver muitas conexões de banco de dados, talvez as aplicações não consigam se conectar e backups completos e incrementais podem falhar, afetando os serviços.

    Solução:
    1. Verifique se as aplicações estão conectadas, otimize as conexões e libere conexões desnecessárias.
    2. Se esse parâmetro for definido como default, você poderá escalar a instância de BD para definir max_connections como um valor maior. Para obter detalhes, consulte Alteração as especificações da instância de BD.
    3. Verifique se alguma métrica é anormal e se algum alarme é gerado no console do Cloud Eye. O Cloud Eye monitora as métricas do banco de dados, como o uso da CPU, o uso da memória, o uso do espaço de armazenamento e as conexões do banco de dados, e permite definir políticas de alarme para identificar riscos antecipadamente se algum alarme for gerado. Para obter detalhes sobre as métricas de monitoramento suportadas, consulte Configuração de métricas exibidas.
  7. Verifique se a instância de banco de dados está no estado Storage full.
    Método de verificação: visualize o uso do espaço de armazenamento no console de gerenciamento ou no Cloud Eye.
    • No console do RDS

      Localize uma instância de BD e clique em seu nome para ir para a página Basic Information. Na área Storage Space, visualize o uso do espaço de armazenamento.

      Figura 12 Uso de espaço do armazenamento
    • No Cloud Eye

      Localize uma instância de BD e clique em View Metric na coluna Operation. Na página exibida, visualize o uso do espaço de armazenamento.

    Possível causa e soluções: consulte O que fazer se uma instância de BD do RDS for anormal devido ao espaço de armazenamento total?

  8. Exiba mensagens de erro de conexão comuns.

    Quando você executa comandos para se conectar a uma instância de BD, a compreensão das mensagens de erro pode ajudar:

    • ERROR 2013: Lost connection to MySQL server during query

      Se os valores de wait_timeout e interactive_timeout forem muito pequenos, o cliente do RDS for MySQL desconectará automaticamente a conexão vazia de tempo limite. Para obter detalhes, consulte Cliente de MySQL automaticamente desconectado de uma instância de BD.

    • ERROR 1045 (28000): Access denied for user 'root'@'192.168.0.30' (using password: YES)

      Verifique se a senha está correta, se o ECS tem permissão para se conectar à instância de BD e se o cliente do RDS for MySQL pode executar ping no endereço IP flutuante da instância de BD. Para obter detalhes, consulte Instância de BD do RDS for MySQL inacessível.

    • ERROR 1226 (42000): User 'test' has exceeded the 'max_user_connections' resource (current value:10)

      Verifique se o número de conexões com a instância de BD é limitado. Para obter detalhes, consulte Instância de BD do MySQL inacessível.

    • ERROR 1129 (HY000): Host '192.168.0.111' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'

      Verifique se o número de tentativas de conexão do clientes de RDS for MySQL com falha (não causadas por senhas incorretas) excede o valor de max_connection_errors. Para obter detalhes, consulte Instância de BD do RDS for MySQL inacessível.

    • [Warning] Access denied for user 'username'@'yourIp' (using password: NO)

      Se esta mensagem de erro for exibida quando você tentar se conectar a uma instância de BD do RDS for MySQL ou RDS for PostgreSQL, verifique se o nome de usuário ou a senha estão corretos.

    • [Warning] Access denied for user 'username'@'yourIp' (using password: YES)

      Se esta mensagem de erro for exibida quando você tentar se conectar a uma instância de do RDS for MySQL ou RDS for PostgreSQL, verifique se o nome de usuário ou a senha estão corretos.

    • Falha no logon para o usuário 'username'

      Se esta mensagem de erro é indicada quando você tenta conectar a uma instância de BD do RDS for SQL Server, verifique se o nome de usuário ou a senha estão corretos.

  9. Se o problema persistir, crie um tíquete de serviço.