X

MySQL: Ошибка Lock wait timeout exceeded; try restarting transaction

Столкнулся с ошибкой при выполненеии DELETE запроса в MySQL: Lock wait timeout exceeded; try restarting transaction ..

Ошибка возникает когда какая-то транзакция заблокировала выполнение запроса. Чтобы найти список таких транзакций нужно выполнить такой запрос

SELECT * FROM `information_schema`.`innodb_trx` ORDER BY `trx_started`

В результате мы получим список транзакций, время запуска и их состояние

trx_id    | trx_state    | trx_started         | trx_requested_lock_id | trx_mysql_thread_id
335866197 | ROLLING BACK | 2020-09-21 14:56:09 | NULL                  | 997

если мы понимаем, что именно это проблемная транзакция, ищем ее trx_mysql_thread_id проверяем связанный SQL запрос по id

SHOW FULL PROCESSLIST;

и завершаем процесс вот так

KILL 997

Тэги: mysql