linux kill mysql_kill - 如何停止正在运行的MySQL查询?

kill - 如何停止正在运行的MySQL查询?

我从我的Linux shell连接到mysql。 我不时地运行一个太大的mysql查询。 它打印和打印,我已经知道这不是我的意思。 我想停止查询。

点击mysql(几次)完全杀死mysql然后带我回到shell,所以我必须重新连接。

是否可以在不杀死mysql本身的情况下停止查询?

6个解决方案

395 votes

mysql>show processlist;

mysql> kill "number from first col";

baklarz2048 answered 2019-02-21T14:50:50Z

62 votes

只是补充一下

KILL QUERY **Id**其中Id是连接ID,来自show processlist

如果您不希望在从某个应用程序运行时通常终止连接,则更为可取。

有关更多详细信息,请在此处阅读mysql doc

mtariq answered 2019-02-21T14:51:40Z

34 votes

连接到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)

minhas23 answered 2019-02-21T14:52:28Z

11 votes

使用mysqladmin来终止失控查询:

运行以下命令:

mysqladmin -uusername -ppassword pr

然后记下进程ID。

mysqladmin -uusername -ppassword kill pid

失控查询应该不再消耗资源。

minhas23 answered 2019-02-21T14:53:14Z

8 votes

如果您有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

Rudy Lattae answered 2019-02-21T14:53:52Z

0 votes

这个问题的作者提到它通常只在之后MySQL打印输出,他意识到执行了错误的查询。如上所述,在这种情况下,Ctrl-C没有帮助。 但是,我注意到了它将中止当前查询 - 如果您在任何输出之前捕获它打印。 例如:

mysql> select * from jos_users, jos_comprofiler;

MySQL忙于生成上述两个表的笛卡尔积你很快就会注意到MySQL没有将任何输出打印到屏幕上(这个过程state is 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查询。

Anthony Geoghegan answered 2019-02-21T14:54:36Z

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值