@sawyer34

Mysql. Как обойти ошибку “Lock wait timeout exceeded; try restarting transaction”?

У меня есть простой запрос в базу

UPDATE users SET username='test' WHERE id='3'


После этого запрос зависает на 120 секунд и появлееться ошибка "Lock wait timeout exceeded; try restarting transaction". Это касается только одного пользователя, во всех других случаях все хорошо.

Командой
show full processlist;
убил все апдейты которые зависли к этому юзеру и вновь запустил этот апдейт и все равно то же.

Как мне разлочить его?
  • Вопрос задан
  • 19865 просмотров
Пригласить эксперта
Ответы на вопрос 2
iqw
@iqw
Serior Software Engineer
Взято отсюда:

1) Войдите в MySQL
mysql -u your_user -p

2) Посмотрите список залоченых таблиц:
show open tables where in_use>0;

3) Посмотрите список процессов (один из них лочит вашу таблицу):
show processlist;

4) Убейте этот процесс (процессы)
kill <put_process_id_here>;
Ответ написан
@vkponomarev
Для debian

1) systemctl restart mysql
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы