Answers:
mysql>show processlist;
mysql> kill "number from first col";
mysql
正在打印...我看不到提示
KILL QUERY
它要好一些KILL
。这样,查询将被杀死,但连接不会被杀死。
KILL
,但可以运行:CALL mysql.rds_kill(12345)
连接到mysql
mysql -uusername -p -hhostname
显示完整的进程列表:
mysql> show full processlist;
+---------+--------+-------------------+---------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+---------+--------+-------------------+---------+---------+------+-------+------------------+
| 9255451 | logreg | dmin001.ops:37651 | logdata | Query | 0 | NULL | show processlist |
+---------+--------+-------------------+---------+---------+------+-------+------------------+
杀死特定的查询。此处id = 9255451
mysql> kill 9255451;
如果您拒绝权限,请尝试以下SQL:
CALL mysql.rds_kill(9255451)
如果mysqladmin
有空的话,您可以通过以下方式获得查询列表:
> mysqladmin -uUSERNAME -pPASSWORD pr
+-----+------+-----------------+--------+---------+------+--------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-----+------+-----------------+--------+---------+------+--------------+------------------+
| 137 | beet | localhost:53535 | people | Query | 292 | Sending data | DELETE FROM |
| 145 | root | localhost:55745 | | Query | 0 | | show processlist |
+-----+------+-----------------+--------+---------+------+--------------+------------------+
然后,您可以停止托管长时间运行的查询的mysql进程:
> mysqladmin -uUSERNAME -pPASSWORD kill 137
您需要运行以下命令来终止该进程。
> show processlist;
> kill query processId;
查询参数指定我们需要杀死查询命令的过程。
kill过程的语法如下
杀死[连接| QUERY] processlist_id
请参考此链接以获取更多信息。
这个问题的作者提到,通常只有在MySQL打印其输出后,他才意识到执行了错误的查询。如前所述,在这种情况下,Ctrl-C
无济于事。但是,我注意到它
会中止当前查询 -如果您在打印任何输出之前捕获了它。例如:
mysql> select * from jos_users, jos_comprofiler;
MySQL忙于生成上述两个表的笛卡尔积,您很快就会注意到MySQL尚未在屏幕上打印任何输出(进程状态为Sending data),因此您键入Ctrl-C
:
Ctrl-C -- sending "KILL QUERY 113240" to server ...
Ctrl-C -- query aborted.
ERROR 1317 (70100): Query execution was interrupted
Ctrl-C
可以类似地用于停止UPDATE
查询。