Você disse que estava executando um script do MySQL. Mas parece que este é um script PHP que executa o processo em lote. Em ambos os casos, é possível que você esteja criando uma única transação enorme? Se você estiver usando um dos mecanismos transacionais do MySQL (InnoDB é o padrão em novas versões do PHP), uma transação será iniciada no início do script. Em seguida, concluído no final. É uma prática recomendada em tarefas em lote SQL de longa execução para confirmar periodicamente os dados. Caso contrário, a transação preenche a RAM e, eventualmente, morre.
Também vejo essa mensagem algumas vezes quando executo um comando SQL em um console remoto e o servidor MySQL expira. Para resolver isso eu SSH no servidor e executar o comando de longa duração localmente no console do MySQL.
Espero que isso ajude.