MySQL - General error: 1205 Lock wait timeout exceeded; try restarting transaction

Материал из Wiki - Iphoster - the best ever hosting and support. 2005 - 2023
Версия от 15:02, 14 декабря 2020; Admin iph (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

Доступная цена

MySQL - General error: 1205 Lock wait timeout exceeded; try restarting transaction

Ошибка

General error: 1205 Lock wait timeout exceeded; try restarting transaction

возникает в MySQL если скрипт пытается обновить запись, которая заблокирована.

Со стороны MySQL сервер можно увеличить этот таймаут, например в 2 раза:

MariaDB [(none)]> SHOW VARIABLES like '%innodb_lock_wait_timeout%';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| innodb_lock_wait_timeout | 50    |
+--------------------------+-------+
$ vi /etc/my.cnf
[mysqld]
innodb_lock_wait_timeout = 100

и перезагрузить MySQL сервер:

$ systemctl restart mariadb.service

Если проблема не решается через innodb_lock_wait_timeout - то нужно ее решать на стороне скрипта через промежуточную таблицу и асинхронной задачи по обновлению данных. Для этого нужно обратиться к PHP/SQL программисту.