Base de conhecimento
1000 perguntas frequentes, 500 tutoriais e vídeos explicativos. Aqui, você encontra apenas soluções!
Resolver um erro do MySQL (o servidor ficou inativo)
Este guia permite resolver um erro do tipo "Consulta inválida: o servidor MySQL ficou inativo".
Introdução
- Este tipo de erro geralmente ocorre porque uma conexão MySQL permanece aberta sem enviar solicitações durante um período de tempo que excede o limite após o qual a conexão é fechada: http://dev.mysql.com/doc/refman/5.7/en/gone-away.html
- As variáveis
wait_timeouteinteractive_timeoutque controlam essa desconexão estão definidas em 30 segundos: http://dev.mysql.com/doc/refman/5.0/en/communication-errors.html
Soluções
Para evitar o erro "O servidor MySQL foi desligado", aqui estão várias abordagens possíveis:
Verificação e reconexão automática
Antes de executar uma consulta, recomenda-se testar se a conexão MySQL ainda está ativa. Se a conexão foi fechada, você pode restabelecê-la automaticamente antes de prosseguir com sua consulta. Aqui está um exemplo em PHP:
if (!mysqli_ping($connexion)) {
mysqli_close($connexion);
$connexion = mysqli_connect($host, $user, $password, $database);
}A função mysqli_ping() verifica se a conexão ainda é válida. Se não for, o script fecha a conexão e abre uma nova.
Envio regular de "ping"
Outra opção é executar um script que envie regularmente um "ping" para o banco de dados, a fim de manter a conexão ativa. Por exemplo, você pode criar uma tarefa agendada (cron job) que envie uma consulta leve, como SELECT 1;, em intervalos regulares.
Ajuste das configurações MySQL (Servidor Cloud)
Com um Servidor Cloud, você pode aumentar os valores das variáveis wait_timeout e interactive_timeout no menu MySQL do seu servidor para prolongar a duração da conexão antes que ela seja encerrada.
Link para esta FAQ: https://faq.infomaniak.com/499
Esta seção de perguntas frequentes foi útil?