2008-09-15 25 views
12

Estoy tratando de eliminar varias filas de una base de datos MySQL 5.0.45:MySQL: "bloqueo de tiempo de espera de espera excedido"

delete from bundle_inclusions; 

El cliente funciona por un tiempo y luego devuelve el error:

Lock wait timeout exceeded; try restarting transaction 

Es posible que exista alguna transacción no comprometida que tenga un bloqueo en esta tabla, pero necesito que este proceso prevalezca sobre dichos bloqueos. ¿Cómo rompo el bloqueo en MySQL?

Respuesta

19

Estoy de acuerdo con Erik; TRUNCATE TABLE es el camino a seguir. Sin embargo, si no se puede utilizar que por alguna razón (por ejemplo, si no lo hace realmente desea eliminar todas las filas de la tabla), puede probar las siguientes opciones:

  • eliminar las filas en lotes más pequeños (p. ej., ELIMINAR DE bundle_inclusions WHERE id BETWEEN? and?)
  • Si se trata de una tabla MyISAM (en realidad, esto también puede funcionar con InnoDB), intente emitir una LOCK TABLE antes del DELETE. Esto debería garantizar que tienes acceso exclusivo.
  • Si se trata de una tabla InnoDB, entonces después de se produce el tiempo de espera, use SHOW INNODB STATUS. Esto debería darle una idea de por qué falló la adquisición de bloqueo.
  • Si tiene el privilegio SUPER, puede probar MOSTRAR LISTA DE PROCESOS para ver qué otras conexiones (si hay alguna) está utilizando la tabla, y luego usar KILL para deshacerse de la (s) que está compitiendo.

Estoy seguro de que hay muchas otras posibilidades; Espero que uno de estos ayuda.

3

de adivinanzas: truncar bundle_inclusions mesa

5

Linux: En la configuración de MySQL (/etc/my.cnf o /etc/mysql/my.cnf), insertar/editar esta línea

innodb_lock_wait_timeout = 50 

Aumentar el valor suficientemente (está en segundos), reinicie la base de datos, realice cambios. A continuación, invierta el cambio y reinicie nuevamente.

2

Tuve el mismo problema, una transacción deshonesta sin fin. Reinicié el proceso mysqld No es necesario truncar una tabla. Puede perder datos de esa transacción deshonesta.

Cuestiones relacionadas