希望狼头哥能看的懂...

沉沦 2010-08-04 12:23:45
引言:1.在MySQL client 执行某个SQL时,其强行中断可以使用ctrl+c...
2.在MySQL client 执行某个SQL时,可以另开一个窗口执行 show processlist ; kill ID; 中断SQL

问题 1.ctrl+c 与(show processlist ; kill ID; ) 中断SQL是用的同一个原理吗? 如果不是.ctrl+c是怎么去中断的.
2.如果想用在程序里面中断呢.
例如: JAVA为例

当用JAVA发送一个条sql给mysql server时.

这时我想强行中断.在JAVA中能做到吗?
...全文
172 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2010-10-13
  • 打赏
  • 举报
回复
楼上说得都不错。

根本的差别是。
kill ID; 是在服务器端执行,是在MYSQL服务中杀掉这个连接。

而ctrl+c ,是在客户端执行,这强制中止客户端的程序,然后导致MYSQL端对已断开连接进行中止。

wwwwb 2010-10-13
  • 打赏
  • 举报
回复
kill ID 是mysql提供的内部命令

ctrl+c 是操作系统层面的
原理不一样
在中取得ID,直接发KILL ID 即可
小白菜白呦白 2010-10-13
  • 打赏
  • 举报
回复
狼头哥他没来看
zuoxingyu 2010-08-29
  • 打赏
  • 举报
回复
[Quote=引用楼主 m582445672 的回复:]
引言:1.在MySQL client 执行某个SQL时,其强行中断可以使用ctrl+c...
2.在MySQL client 执行某个SQL时,可以另开一个窗口执行 show processlist ; kill ID; 中断SQL

问题 1.ctrl+c 与(show processlist ; kill ID; ) 中断SQL是用的同一个原理吗? 如果不是.ctrl+c是怎么去中断……
[/Quote]

ctrl+c 等于KILL ID

测试:
1:select * from table1; 列出的数据开始不断刷新DOS窗口
2:按下CTRL+C
3:

NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL |
ULL | NULL | NULL | NULL Ctrl-C -- sending "KILL QUERY 8" to server ... |Ctrl-C -- query aborted.


4:

localhost~root@localhost~cpc>select * from terminal_parameter;
ERROR 1317 (70100): Query execution was interrupted

在这里可以看到,前面的那个查询进程已经被终止掉了。
lanowen 2010-08-25
  • 打赏
  • 举报
回复
当用户按下Ctrl+C键时,DOS会在屏幕上光标所在位置显示“^C”并调用中断 INT23H,立刻结束程序的执行
kill id 则是杀死一个id指定的进程。。
具体内部如何实现,可以去看mysql源码,看看内部实现细节。。。
无天 2010-08-11
  • 打赏
  • 举报
回复
同意3楼的。
zhaining522 2010-08-11
  • 打赏
  • 举报
回复
kill ID 是mysql提供的内部命令

ctrl+c 是操作系统层面的

就不知道 kill id 内不是如何实现的
iihero 2010-08-11
  • 打赏
  • 举报
回复
kill id只是让那个thread abort或者exit.
guguda2008 2010-08-11
  • 打赏
  • 举报
回复
多线程,直接把线程KILL掉
沉沦 2010-08-11
  • 打赏
  • 举报
回复
zuoxingyu 2010-08-04
  • 打赏
  • 举报
回复
应该是不一样的原理。
feixianxxx 2010-08-04
  • 打赏
  • 举报
回复
1.ctrl+c 好像不止mysql可以中断 。。普通的shell口令也是这么搞的。跟kill id不一样吧

2.帮顶
loveflea 2010-08-04
  • 打赏
  • 举报
回复
Ctrl+C 应该是直接终止了mysql客户端程序;
kill 您可以选择终止连接或查询
KILL [CONNECTION | QUERY] thread_id
•KILL CONNECTION is the same as KILL with no modifier: It terminates the connection associated with the given thread_id.
•KILL QUERY terminates the statement that the connection is currently executing, but leaves the connection itself intact.

57,062

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧