MySQL数据库超时等待时间过长,一个事务等待时间过长会造成死锁,特定场合下有必要修改默认等待时间
(1)登录MySQL,查看锁记录等待时间:
SHOW VARIABLES LIKE 'innodb_lock_wait_timeout';
等待时间是50秒
(2)把表中id=1的数据加锁,另一个事务对记录修改:
SELECT * FROM test WHERE id=1 FOR UPDATE;
(3)另一个用户登录mysql,修改id=1的数据:
UPDATE test SET city='杭州' WHERE id=1;
超时退出 1min
(4)把超时等待时间修改为5秒:
SET innodb_lock_wait_timeout=5;
(5)查看锁记录超时等待时间:
SHOW VARIABLES LIKE 'innodb_lock_wait_timeout';
(6)另一个用户修改id=1的数据:
UPDATE test SET city='杭州' WHERE id=1;
等待时间 7s