Решаем ошибку Lock wait timeout exceeded; try restarting transaction.


В этой статье приведу короткий и самый быстрый вариант решения ошибки «Lock wait timeout exceeded; try restarting transaction».

Конечно, если ошибка у Вас в системе — нужно искать и решать корень проблемы — например, незакрытые транзакции. Я же приведу алгоритм быстро, в моменте, решения.

Итак, если Вы выполняете запросы, не заходя на сервер MySql — пропустите первый шаг:
1) Заходим в MySQL с консоли:

mysql -u %YOUR_LOGIN% -p

Замените %YOUR_LOGIN% на свой логин, после чего введите свой Пароль.

2) Выполните:

SHOW PROCESSLIST;

Этот запрос покажет Вам список запущенных процессов — один из которых, вероятно, блокирует Вашу таблицу. Обратите внимание на колонку Time — процесс, который завис с большой вероятностью — тот, который Вам нужен.

3) Выполните команду ниже с ID процесса, который может блокировать Вашу БД:

KILL %PROCESS_ID%;

4) Повторно выполните свой первый запрос, после которого Вы получали ошибку. Если она исчезнет — значит Вы правильно определили потенциально нежелательный процесс.

Надеюсь статья была полезной. Удачи!


Добавить комментарий

Ваш адрес email не будет опубликован.