DBAtlas · Atlas d'exploitation des bases de données

1205: Lock wait timeout exceeded; try restarting transaction (délai d'attente de verrou dépassé ; relancez la transaction)

MySQL

Que signifie cette erreur ?

Une transaction a attendu un verrou de ligne requis pendant innodb_lock_wait_timeout secondes, n'a pas pu l'acquérir et a expiré.

Cause

Une autre transaction détient le verrou longtemps sans commit ni rollback ; transactions ouvertes inactives, mises à jour en masse de longue durée ou lignes chaudes disputées.

Comment la corriger

Trouvez la transaction bloquante : joignez performance_schema.data_lock_waits à data_locks (information_schema.innodb_lock_waits/innodb_trx dans les versions plus anciennes). Validez/annulez la transaction bloquante ou terminez-la avec KILL <trx_mysql_thread_id> si nécessaire. Gardez les transactions courtes et ne laissez pas de transactions inactives (autocommit/logique applicative). Si nécessaire, ajustez innodb_lock_wait_timeout à la charge.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur