Mysql 经常会遇到语句或者存储过程长时间没有反应,大概率就是挂掉了,或者死锁了。
可通过如下几种方式来查看当前进程状态
1. 查询数据库所有的进程状态
SHOW PROCESSLIST
SELECT * FROM information_schema.PROCESSLIST;
2. 查询在锁的事务
SELECT * FROM information_schema.INNODB_TRX;
3. 查看是否锁表
show OPEN TABLES where In_use > 0;
4. 观察事务内锁状态
show engine innodb status
status 里面就有对应的结果,具体结果可以搜索了。
最后,杀死进程
查询到上面的进程id,可以用如下命令结束进程
KILL 进程id
KILL 38233