- 查询死锁连接 SQL
select concat('KILL ',id,';') from information_schema.processlist a inner join information_schema.INNODB_TRX b on a.id = b.trx_mysql_thread_id where b.trx_tables_locked = 1
- 将死锁连接批量导出到 TXT 文本中
-- 我使用的 MySql 是 5.7.6 版本的,导出时,文件只能存储在 /var/lib/mysql-files/ 目录下,否则会提示 1029 错误代码
select concat('KILL ',id,';') from information_schema.processlist a inner join information_schema.INNODB_TRX b on a.id = b.trx_mysql_thread_id where b.trx_tables_locked = 1 into outfile /var/lib/mysql-files/all_dead_lock.txt
-
执行 TXT 文本,进入 MySql 命令行
-- source /var/lib/mysql-files/all_dead_lock.txt -
注:
-- 死锁后,锁住的数据是无法查询到的。解除死锁后,数据会还原。 -
死锁造成的原因:
-- 对数据库的 update、delete 操作时,事务未超时未提交,再去删除时,就会造成死锁。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于