DBAtlas · Atlas de operações de banco de dados

1205: Lock wait timeout exceeded; try restarting transaction

MySQL

O que significa?

Uma transação aguardou um lock de linha necessário por innodb_lock_wait_timeout segundos, não conseguiu adquiri-lo e expirou.

Por que acontece?

Outra transação mantendo o lock por muito tempo sem commit ou rollback; transações abertas ociosas, atualizações em massa de longa duração ou hot rows disputadas.

Como resolver

Encontre a transação bloqueadora: faça join de performance_schema.data_lock_waits com data_locks (information_schema.innodb_lock_waits/innodb_trx em versões mais antigas). Faça commit/rollback da transação bloqueadora ou encerre-a com KILL <trx_mysql_thread_id> se necessário. Mantenha as transações curtas e não deixe transações ociosas (autocommit/lógica da aplicação). Se necessário, ajuste innodb_lock_wait_timeout à carga de trabalho.

Abrir no DBAtlas →

Mais entradas deste banco