1205: Lock wait timeout exceeded; try restarting transaction (se superó el tiempo de espera de bloqueo; reinicie la transacción)
MySQL¿Qué significa?
Una transacción esperó un bloqueo de fila necesario durante innodb_lock_wait_timeout segundos, no pudo adquirirlo y agotó el tiempo de espera.
¿Por qué ocurre?
Otra transacción que mantiene el bloqueo durante mucho tiempo sin commit ni rollback; transacciones abiertas inactivas, actualizaciones masivas de larga duración o filas calientes en contención.
Cómo solucionarlo
Encuentre la transacción bloqueante: combine performance_schema.data_lock_waits con data_locks (information_schema.innodb_lock_waits/innodb_trx en versiones antiguas). Haga commit/rollback de la transacción bloqueante o termínela con KILL <trx_mysql_thread_id> si es necesario. Mantenga las transacciones cortas y no deje transacciones inactivas (autocommit/lógica de la aplicación). Si es necesario, ajuste innodb_lock_wait_timeout a la carga de trabajo.
Más entradas de este motor
- 1045Access denied for user (using password: YES/NO) (acceso denegado para el usuario)
- 1062Duplicate entry for key (entrada duplicada para la clave)
- 1213Deadlock found when trying to get lock; try restarting transaction (deadlock al obtener el bloqueo; reinicie la transacción)
- 1040Too many connections (demasiadas conexiones)
- 1064You have an error in your SQL syntax (error de sintaxis SQL)
- 1146Table doesn't exist (la tabla no existe)
- 1054Unknown column in field list (columna desconocida en la lista de campos)