Error en MySQL: Lock wait timeout exceeded; try restarting transaction

Si al ejecutar consultas que tardan mucho tiempo o procedimientos sale excepción en MySQL: “Lock wait timeout exceeded; try restarting transaction”.

Esto se puede arreglarse de la siguiente forma:

  1. Aumentar los tiempo de bloqueo:
    SET GLOBAL innodb_lock_wait_timeout = 5000;
    SET innodb_lock_wait_timeout = 5000;
    
  2. Matar los procesos colgados:
    SHOW PROCESSLIST;
    KILL XXX; /* Donde XXX es el numero del proceso colgado */