Entendo perfeitamente a frustração. Esse erro é o equivalente do MySQL a “desligar o telefone na sua cara” no meio de uma conversa.
Corrigir erro MySQL Server has gone away. Otimização MariaDB. O erro “MySQL Server has gone away” (Erro 2006) geralmente acontece por dois motivos principais: ou o servidor encerrou a conexão porque o pacote enviado era grande demais, ou a conexão expirou por inatividade.
Aqui está o passo a passo para diagnosticar e resolver isso:
1. Aumentar o max_allowed_packet
Esta é a causa número um. Se você está tentando subir uma tabela pesada ou um dump de banco de dados, o MySQL mata a conexão se o arquivo for maior que o limite configurado.
- Onde mudar: No seu arquivo de configuração (
my.cnfno Linux oumy.inino Windows). - O que fazer: Localize a seção
[mysqld]e aumente o valor.
[mysqld] max_allowed_packet = 64M
(Você pode tentar 128M ou até 512M se estiver lidando com BLOBs gigantes).
2. Ajustar o wait_timeout
Se o seu script demora muito para processar dados entre uma consulta e outra, o MySQL fecha a conexão por “tédio” (inatividade).
- O que fazer: Aumente o tempo que o servidor espera antes de derrubar uma conexão ociosa.
wait_timeout = 28800 interactive_timeout = 28800
Isso define o tempo de espera para 8 horas.
3. Verificar o Tempo de Execução no PHP (se aplicável)
Se você estiver usando PHP, o problema pode não estar apenas no banco, mas no tempo que o script leva para rodar. Verifique o seu php.ini:
max_execution_time = 300memory_limit = 256M
4. Problema de DNS (Conexões Lentas)
Às vezes, o servidor tenta resolver o nome do host de quem está conectando e isso demora tanto que gera um timeout. Adicionar esta linha no my.cnf pode resolver instantaneamente:
[mysqld] skip-name-resolve
Como aplicar as mudanças?
Após alterar o arquivo my.cnf ou my.ini, você precisa reiniciar o serviço do MySQL para que as novas regras entrem em vigor:
- Linux:
sudo systemctl restart mysql - Windows: Reinicie o serviço através do “Services.msc” ou painel do XAMPP/Wamp.
Dica de Ouro: Se você não tem acesso ao arquivo de configuração (em uma hospedagem compartilhada, por exemplo), tente executar o comando SQL
SET GLOBAL max_allowed_packet=67108864;direto no seu gerenciador de banco de dados, embora nem sempre os provedores permitam isso.
FAQ
É uma variável que define o tamanho máximo de um pacote de dados que o servidor pode receber…

