为了账号安全,请及时绑定邮箱和手机立即绑定

MYSQL中怎么强制终止一条语句的执行?

MYSQL中怎么强制终止一条语句的执行?

当年话下 2019-06-07 14:06:10
MYSQL中怎么强制终止一条语句的执行?
查看完整描述

4 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

KILL命令的语法格式如下:KILL [CONNECTION | QUERY] thread_id

步骤如下:

1、KILL允许自选的CONNECTION或QUERY修改符:KILL CONNECTION与不含修改符的KILL一样:它会终止与给定的thread_id有关的连接。

2、KILL QUERY会终止连接当前正在执行的语句,但是会保持连接的原状。

3、如果您拥有PROCESS权限,则您可以查看所有线程。

4、如果您拥有超级管理员权限,您可以终止所有线程和语句。否则,您只能查看和终止您自己的线程和语句。

5、您也可以使用mysqladmin processlist和mysqladmin kill命令来检查和终止线程。

首先登录mysql,然后使用: show processlist; 查看当前mysql中各个线程状态。

以上显示出当前正在执行的sql语句列表,找到消耗资源最大的那条语句对应的id.

然后运行kill命令,命令格式如下:

[sql] view plain copy

kill id;  

- 示例:  

kill 8358  

杀掉即可。


 


查看完整回答
反对 回复 2019-06-08
?
墨色风雨

TA贡献1853条经验 获得超6个赞

kill掉 ~
show processlist;
找出你要停止的语句
然后找出你要终止的语句的id
在系统下mysqladmin -uroot -ppassword kill 要杀的ID

查看完整回答
反对 回复 2019-06-08
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

如何中止一个SQL语句的执行
另一个sqlplus / as sysdba
select * from v$session;
alter system kill session(,)

或是

SELECT 'alter system kill session '''||t.SID||','||t.SERIAL#||''';' from v$session t WHERE t.SID=;

SELECT 'kill -9 '||p.SPID FROM v$session t ,v$process p WHERE t.SID=* AND t.PADDR=p.ADDR;
都可以。

查看完整回答
反对 回复 2019-06-08
?
慕仙森

TA贡献1827条经验 获得超7个赞

show processlist;
可以查看所有正在运行的mysql中的线程;

找到你所要终止的线程id;比如是 145623;
执行:
kill 145623; 就可以了。

当然假如你的sql是比如alter table 一张大表,或者在delete一张大表等等之类的操作的时候,只有耐心等待了。这时候如果真的想要强行停止,只有停mysql实例了,不过这时候可能会表损坏丢数据等等。

查看完整回答
反对 回复 2019-06-08
  • 4 回答
  • 0 关注
  • 2077 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信