DataARTIGO

Erro na fila do Gearman: mysql_stmt_execute failed: Unknown prepared statement handler (1)

A solução para esse erro é relativamente simples e depende da instalação do pacote uuid.

Se você estiver executando o Gearman a partir de uma versão que você mesmo compilou (ou você mesmo empacotou), pode acontecer de ter o seguinte erro. É a mesma mensagem para Ubuntu, Debian, CentOS/RHELL e seus clones.

[  proc ] mysql_stmt_execute failed: Unknown prepared statement handler (1) given to mysqld_stmt_execute -> libgearman-server/plugins/queue/mysql/queue.cc:356
[  proc ] gearman_server_job_add gearman_server_run_command(QUEUE_ERROR) -> libgearman-server/server.cc:284

O mesmo é visível nos logs /var/log/gearmand/gearmand.log, o que faz com que as filas falhem com uma mensagem de erro como esta:

Warning: GearmanClient::doBackground(): _client_run_tasks(GEARMAN_SERVER_ERROR) queue_insert_error:QUEUE_ERROR -> libgearman/client.cc:1522 in /path/to/script.php on line xxx

A solução é relativamente simples: você provavelmente não tem o pacote uuid instalado. O pacote é necessário para gerar IDs únicos que o Gearman irá usar para atribuir para cada trabalho. Sem o pacote, os IDs não podem ser gerados. Se estiver executando um backendBack-end49 conteúdosIntegração front-end com backend: 7 decisões que evitam caos entre APIs, BFF e GraphQLDev (Back & Front) · abr 2026Como criar uma FAKE API REST para testes — JSONPlaceholderDev (Back & Front) · set 2025Construindo um aplicativo de bate-papo de IA simples com Spring AI e AngularDev (Back & Front) · jul 2025Ver tudo em Dev (Back & Front) persistente do MySQLMySQL8 conteúdosMySQL + Adminer + Docker Compose: montando rapidamente um ambiente para usoData · abr 2019Banco de dados MYSQL no PHPStormDev (Back & Front) · jul 2019Criando um ambiente de desenvolvimento PHP mínimo com Docker – Parte 3Dev (Back & Front) · out 2019Ver tudo em Data para o seu Gearman, as inserções irão falhar caso não haja o ID único por conta de violações primárias.

Portanto, instale-o:

$ apt-get install uuid
$ yum install uuid

Dependendo do seu sistema operacional, use o apt ou o yum.

***

Artigo traduzido pela Redação iMasters, com autorização do autor. Publicado originalmente em http://mattiasgeniar.be/2013/02/20/gearman-queue-error-mysql_stmt_execute-failed-unknown-prepared-statement-handler-1/

Trabalha com programação de linguagens e servidores há mais de 10 anos. Atualmente, trabalha na Nucleus como desenvolvedor e engenheiro de sistemas. Seus interesses incluem Linux, Apache, MySQL e PHP.

Ver perfil