Relatado pelo Item do rastreador de problemas nº 33711
Ao tentar inserir um BLOB> 3MB no banco de dados, ocorre o seguinte erro:
Erro fatal: tamanho de memória permitido de 134217728 bytes esgotado (tentou alocar 4252768 bytes) em ...\libraries\joomla\database\driver.php na linha 1638
Por que JDatabaseDriver->replacePrefix( )
está consumindo tanta memória?
Basicamente, não há nada errado com replacePrefix()
.
O que realmente acontece é que você está enviando para o MySQL uma string muito grande para uma configuração predefinida (max_allowed_packet
) E está relatando o erro MySQL server has gone away
, Conforme explicado em O servidor MySQL desapareceu, obstruindo a importação de grandes despejos.
Agora, o Joomla acha que isso é apenas um erro temporário e tenta novamente a consulta, executando novamente o método execute()
repetidamente, até que a memória se esgote.
A solução para esse problema é aumentar o valor de max_allowed_packet
Em [mysqld]
Em my.ini
Para um valor maior.