Ir para o conteúdo

Como resolvo o erro "MySQL server has gone away" ao me conectar à minha instância de banco de dados MySQL do Amazon RDS?

4 minuto de leitura
0

Tentei consultar uma instância de banco de dados do Amazon Relational Database Service (Amazon RDS) que está executando o MySQL e recebi uma das seguintes mensagens de erro: "MySQL server has gone away" ou "Lost connection to server during query."

Breve descrição

Se o servidor atingiu o tempo limite e encerrou a conexão, é possível receber uma das seguintes mensagens de erro:

  • CR_SERVER_GONE_ERROR - The client couldn't send a question to the server.
  • CR_SERVER_LOST - The client didn't get an error when writing to the server, but the client didn't get a full answer (or any answer) to the question.

Para obter mais informações, consulte o artigo MySQL server has gone away (O servidor MySQL saiu do ar) do MySQL.

Resolução

Veja as seguintes causas e soluções relacionadas para esses erros:

  • Se uma conexão ficar inativa por muito tempo, ela pode ser encerrada incorretamente pelo cliente. Para resolver esse problema, verifique se os tempos limite da aplicação são menores do que os tempos limite do MySQL e certifique-se de que suas aplicações encerrem as conexões inativas.
  • Se uma conexão atingir o tempo limite, aumente os tempos limite do MySQL aumentando os parâmetros wait_timeout e interactive_timeout usando um grupo de parâmetros personalizado. Para obter mais informações, consulte Grupos de parâmetros para Amazon RDS.
  • Se a consulta que está gerando o erro estiver recuperando um grande conjunto de dados, aumente tamanho do parâmetro max_allowed_packet usando um grupo de parâmetros personalizado. Para obter mais informações, consulte Grupos de parâmetros para Amazon RDS.
    Observação: no Amazon Aurora, é possível modificar os parâmetros e defini-los em um grupo de parâmetros de cluster para aplicar em todo o nível do cluster. Defini-los em um grupo de parâmetros de banco de dados aplica os parâmetros somente no nível da instância. No banco de dados MySQL do Amazon Lightsail, é preciso verificar se os parâmetros estão disponíveis para modificação antes de modificá-los usando a interface de linha de comandos (CLI). Para obter mais informações, consulte Updating database parameters in Amazon Lightsail (Atualizar os parâmetros de banco de dados no Amazon Lightsail). Em um banco de dados MySQL do servidor local ou de uma instância do Lightsail, ou para o MySQL do Amazon Elastic Compute Cloud (Amazon EC2), é possível definir os parâmetros no arquivo de configuração. Também é possível definir o xxx global da mesma forma que ele é definido em um ambiente MySQL on-premise normal.
  • Se o erro ocorrer somente ao retornar grandes conjuntos de dados, o cliente pode estar usando um valor elevado de MTU de 9001. Para resolver esse problema, reduza o valor de MTU TCP/IP do cliente. Para obter mais informações sobre como alterar o valor do MTU do seu cliente, consulte Configuração da MTU de uma instância.
  • Se algum parâmetro init_connect for definido com um valor que não permita que o parâmetro seja processado, as conexões de clientes associadas podem falhar. Certifique-se de que todos os parâmetros init_connect sejam processados corretamente. Certifique-se de que os usuários tenham permissões EXECUTE para qualquer procedimento referenciado como um parâmetro init_connect.
  • Se todas as conexões caírem ao mesmo tempo, confirme se outras conexões ainda estão funcionando quando esse problema ocorrer. Para resolver esse problema, verifique se a instância de banco de dados MySQL não está travando ou falhando visualizando os eventos do Amazon RDS e analisando seus logs de erros do MySQL.

Informações relacionadas

Conectar-se à instância de banco de dados do MySQL

Modificar uma instância de banco de dados do Amazon RDS