mysql手动中断source命令的执行

当在MySQL命令行使用source命令导入sql文件时,若忘记关闭autocommit,导致导入速度慢,可以尝试通过断开连接来中断操作。即使showprocesslist未显示对应进程,断开连接(如在secureCRT中)也能停止数据导入。这是一个无需重启MySQL服务的应急方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mysql手动中断source命令的执行

https://blog.youkuaiyun.com/Alan1921/article/details/114364512

问题
在mysql命令行 对一个sql文件执行了source命令,把sql文件的数据导入mysql。
因导入数据前,忘记把autocommit 关闭,导致导入较慢,因此需中断source 命令的运行。
计划 先找到source 对应的进程,然后kill

在这里插入图片描述
奇怪的一幕发生了,show processlist 里面没有对应的 进程
不指定用户名,再次执行 show processlist , 依然没有对应的进程,这可怎么kill ,找不到对应线程。。。

然后,开始网上到处搜解决方案,查看了几十个网页,唯一找到的办法就是重启mysql

问了开发,开发说不能重启数据库。。。

解决办法
突然一个想法冒了出来,执行source 命令的窗口 如果断开和 mysql 的连接,会不会终止数据的导入呢?

那就试试!
我用的是 secureCRT 连接的mysql , 点击断开连接后,我在另外一个窗口查询source导入数据对应的表的数据量,数据量不再增长了!
不像刚才,source 导入数据 执行的时候,表的数据量是不断增加的,现在数据量不变了,说明source 导入操作停止了! 大功告成!

mysql查看当前执行线程_关闭当前的某些线程 show processlist_kill

每个与mysqld的连接都在一个独立的线程里运行,您可以使用SHOW PROCESSLIST语句查看哪些线程正在运行,并使用KILL thread_id语句终止一个线程。

如果您拥有SUPER权限,您可以终止所有线程和语句。否则,您只能查看和终止您自己的线程和语句。

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

1、SHOW PROCESSLIST
在这里插入图片描述
2、kill 6
在这里插入图片描述
3、再次show processlist,可看到下图效果:
在这里插入图片描述
在多数情况下,线程终止可能要花一些时间,这是因为终止标记只会在在特定的间隔被检查;

线程正在释放资源,过会儿才真正的死掉了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值