lock wait timeout exceeded; try restarting transactio 行被锁定
出现原因:
我出现这种情况,是事务由于项目中特殊原因中断了,导致事务并没有提交,而使数据被锁住。
解决方法:
在information_schema信息数据库中存储了数据库名、数据库表、表栏的数据类型和访问权限等。
下面三张表存储了我们想要的信息(mysql 5 信息)
innodb_trx 当前运行的事务
innodb_locks 当前出现的锁 (mysql 8 存储位置改为:performance_schema.data_locks)
innodb_lock_waits 锁等待的对应关系(mysql 8 存储位置改为:performance_schema.data_lock_waits )
由于我们目前的数据是被锁住了,所以使用
select * from information_schema.innodb_trx 查看被锁的信息
根据 trx_query sql语句 找到对应的行后
找到 trx_mysql_thread_id 事务线程id
kill 事务线程id