Este é o erro que estou recebendo de repente.
Additional uncaught exception thrown while handling exception.
Original
PDOException: SQLSTATE[70100]: Unknown error: 1317 Query execution was interrupted...my query
Additional
PDOException: SQLSTATE[HY000]: General error: 2006 MySQL server has gone away...my query
Depois de fazer algumas pesquisas, parece que um módulo personalizado, que eu fiz, está tentando uma consulta muito grande. Uma solução que parece funcionar para muitas pessoas é a seguinte:
- Abra o my.ini
- Altere "max_allowed_packet" de "1m" para "16m" (ou maior)
- Salve my.ini e reinicie o MySQL
No entanto, estou em um servidor compartilhado, portanto não consigo editar o my.ini e, embora meu provedor tenha me confirmado que o valor está definido como 1M, ele não o aumentará.
Eu também tentei adicionar o seguinte: ini_set('mysqli.reconnect', 'on');
a settings.php
. Não resolveu o problema.
Alguém sabe de outra solução ou contorna?
Obrigado.
Respostas:
As empresas de hospedagem compartilhada não concedem o privilégio SUPER . Se você o possui, pode configurar facilmente max_allowed_packet como 512M executando apenas este:
Não é necessário reiniciar. Em seguida, todas as conexões de entrada a seguir poderão ter um pacote de 512M .
Você não pode fazer isso:
porque você recebe
A única alternativa em que consigo pensar é mudar para o Amazon EC2 e instalar o MySQL lá. Dessa forma, você pode ter liberdade para editar my.cnf / my.ini e ter o privilégio SUPER .
fonte
Pedi ao meu provedor que aumentasse o valor, mas não o faria. Entendo por que eles são um negócio e querem que eu pague 29,99 por mês por um servidor dedicado, em vez de 4,99 por um servidor compartilhado.
No entanto, existe uma solução: identifique a consulta que é muito grande e divida-a em duas ou mais partes. Dividi minha consulta do problema ao meio: problema resolvido. Ineficiente - sim - mas é melhor que meu site não funcione ou precise pagar o extra.
fonte
TEXT/BLOB fields
código de equipamento jerry.O problema é que
max_allowed_packet
você o define com maior valor.Como corrigir esse problema (se você estiver no Windows e usando o xamp, encontre o arquivo my.ini)
Vá para xampp \ mysql \ bin
Abra o my.ini
Altere "max_allowed_packet" de "1m" para "16m".
Salve o my.ini
Agora reinicie MySql através do painel de controle do XAMPP.
Encontrei esta solução aqui. http://minorpoint.blogspot.com/2007/09/mysql-server-has-gone-away.html
fonte