Я впервые столкнулся с этой проблемой и поэтому на боевом сервер было принято решение избавиться от блокировки примитивным способом
Избавившись от возникшей проблемы я принялся более детально изучать причины возникновения, пути обнаружения и пути решения.
В логах было найдена запись Lock wait timeout exceeded; try restarting transaction, что и стало отправной точкой.
[%photo_33%]
Возможно вам будет полезна эта ссылка. Я пришел к выводу что данная проблема возникает когда в запросах используется транзакция и по каким то причинам она не была закончена.
[%photo_34%]
Для того что бы повторить данную проблемы достаточно на таблице с движком InnoDB Начать транзакцию, а в другой консоли попробовать обновить заблокированный ряд
Пути решения проблемы
Запрос:
27:---TRANSACTION 0 2317, ACTIVE 565 sec, process no 1103, OS thread id 139717388965632 28-2 lock struct(s), heap size 368, 1 row lock(s), undo log entries 1 29-MySQL thread id 551, query id 1735 localhost root
Из результата вывода мы видим что транзакция висит уже 565 сек а tread_id запроса 551. Теперь в mysql-console выполняем команду