17

我杀死的线程仍在我的线程列表中如何消除它?

+-----+------+-----------+-------------+---------+-------+-----------+------------------------------------------------------------------------------------------------------+
| Id  | User | Host      | db          | Command | Time  | State     | Info                                                                                                 |
+-----+------+-----------+-------------+---------+-------+-----------+------------------------------------------------------------------------------------------------------+
| 678 | root | localhost | hthtthv     | Killed  | 36923 | query end | INSERT INTO `gtgttg` VALUES (1,'tgtg'),(2,'Shopping'),(4,'tgtgtg'),(          |
| 695 | root | localhost | NULL        | Query   |     0 | NULL      | show processlist                                                                                     |
+-----+------+-----------+-------------+---------+-------+-----------+------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
4

3 回答 3

29

它需要恢复它所做的操作,因此这可能需要很长时间。如果它是一个 INNODB 数据库,你可以看看这个问题:https ://dba.stackexchange.com/questions/5654/internal-reason-for-killing-process-taking-up-long-time-in- mysql

所以最后:你需要等待它被淘汰

于 2012-06-04T15:34:52.177 回答
3

就我而言,我的 /var 分区已满,其中写入了 MySQL 二进制日志。一旦我释放了一些磁盘空间,被杀死的连接立即消失了。

于 2016-08-06T13:15:52.940 回答
2

我知道这是一个老问题。我遇到了类似的情况,线程被卡在了被杀死的状态。

我没有强行杀死mysqld,而是发出

sudo service stop mysqld

该命令可能因您的操作系统而异,但您需要优雅地要求系统终止守护程序。它将杀死卡住的线程,并且不会对数据库产生副作用,因为它将是正常关闭。

上面的其他建议要求终止该进程,这将导致可能有其自身问题的数据库恢复。所以我建议使用守护进程优雅停止。

希望有帮助。

于 2018-10-16T14:40:41.140 回答