O que causa o erro de “conexão perdida com o servidor MySQL durante a consulta”?
Esse tipo de erro ocorre quando a conexão entre um cliente e o servidor excede o valor do tempo limite especificado.
Por exemplo, se você tiver uma consulta longa que leva muito tempo para concluir a execução, o MySQL diminui a conexão com o servidor.
Tomemos, por exemplo, ao exportar um grande banco de dados, dependendo do método de exportação e dos dados a serem exportados, pode levar muito tempo para que esse processo seja concluído. Para evitar os problemas no servidor, o MySQL pode encerrar essa conexão antes da conclusão do processo.
Outra causa comum desse tipo de erro é a complexa operações de junção.
MySQL Show Timeout Valor
Como mencionado, você pode corrigir esse tipo de erro simplesmente aumentando as durações do tempo limite no lado do servidor.
Os valores de tempo limite são armazenados nas variáveis Wait_Timeout e Interactive_Timeout. Podemos buscar os valores atuais, como mostrado nas consultas a seguir:
MySQL> Mostrar variáveis globais como 'interactive_timeout';A saída resultante é a seguinte:
+---------------------+-------+O resultado dado mostra o valor padrão da variável interactive_timeout. Este valor define a duração, em segundos, que o servidor aguarda uma atividade em uma sessão ativa antes de encerrar.
Também podemos buscar o valor da variável wait_timeout como:
MySQL> Mostrar variáveis globais como 'wait_timeout';Tabela resultante:
+---------------+-------+Essa variável define a duração que o servidor MySQL aguarda uma atividade em uma sessão não interativa.
Corrija o erro de conexão Lost MySQL atualizando as variáveis de tempo limite
Para corrigir esse tipo de erro, podemos atualizar os valores das duas variáveis discutidas anteriormente. Podemos executar a consulta como mostrado no seguinte:
mysql> set @@ global.interactive_timeout = 43200;O comando anterior deve atualizar o valor da variável interactive_timeout para 43200 segundos.
Para atualizar o parâmetro wait_timeout, execute o seguinte comando:
mysql> set @@ global.wait_timeout = 43200;Você terminou. Você pode tentar executar novamente sua consulta cronometrada.
Conclusão
Neste post, discutimos a causa da conexão perdida erro ao trabalhar com o MySQL e as etapas que você pode tomar para corrigi -las. No entanto, esteja atento às suas consultas ou segmente -as em blocos eficientes.
Obrigado pela leitura e codificação feliz!