mysql死锁,可视化工具无法操作

最近不知道什么原因数据库mysql的可视化工具一直卡着不能操作,换成另一个电脑去连着也是这么一个情况,就是所有的客户端连着上去去操作同一个库一直卡!!出现的提示框的内容:“lock wait timeout exceeded; try restarting”或者“waiting for table metadata lock”.这个后面查了,可能是数据库死锁了,具体怎么死锁的,我不是很清楚。


首先我先讲一下出现这两种情况的大概原因(自己这边的发生的原因):

上面的两种错误类型都是本人去修改表结构的时候发生的,比如将某个表的字段长度变长之类的修改。原因的话,自己本人感觉应该是你去修改这个表的时候别人可能正在操作这个表的数据导致的。


第一种错误提示:

现在我主要讲如果碰到这种数据库死锁的问题该怎么做!,出现第一种情况的话,我是先用脚本show processList展示所有用户进程,将锁住的进程直接kill 进程ID就ok了


第二章错误提示:

当第二种提示出现的时候,我一开始也是用第一种的解决方式做的,然后就一直不行,还是会卡住。后面了解,这种错误是因为之前一些进程没有提交的事物没有结束掉,而我们之前去kill所有锁住的进程对那个还没有提交的事物是不起什么作用的,所以第一种错误的解决方法没有用;那就先查询一些还未提交或者锁住的事物,然后kill掉就可以了,以下是一些方法:


查询 正在执行的事务:
SELECT * FROM information_schema.INNODB_TRX

查看正在锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; 

查看等待锁的事务

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;


然后kill trx_mysql_thread_id字段的值就成功了,哈哈




猜你喜欢

转载自blog.csdn.net/qq_18416057/article/details/78033390
今日推荐