问题
在mysql命令行 对一个sql文件执行了source命令,把sql文件的数据导入mysql。
因导入数据前,忘记把autocommit 关闭,导致导入较慢,因此需中断source 命令的运行。
计划 先找到source 对应的进程,然后kill
mysql> select * from information_schema.processlist where user = 'polcent_basepara';
+-----------+------------------+-------------------+----------------------+---------+------+-----------+------------------------------------------------------------------------------+
| ID | USER | HOST | DB | COMMAND | TIME | STATE | INFO |
+-----------+------------------+-------------------+----------------------+---------+------+-----------+------------------------------------------------------------------------------+
| 168098009 | polcent_basepara | 10.85.5.205:55751 | polcent_baseparam_db | Query | 0 | executing | select * from information_schema.processlist where user = 'polcent_basepara' |
| 185052178 | polcent_basepara | 10.85.5.205:39798 | polcent_baseparam_db | Sleep | 0 | | NULL |
+-----------+------------------+-------------------+----------------------+---------+------+-----------+------------------------------------------------------------------------------+
2 rows in set (0.01 sec)
奇怪的一幕发生了,show processlist 里面没有对应的 进程
不指定用户名,再次执行 show processlist , 依然没有对应的进程,这可怎么kill ,找不到对应线程。。。
然后,开始网上到处搜解决方案,查看了几十个网页,唯一找到的办法就是重启mysql
问了开发,开发说不能重启数据库。。。
解决办法
突然一个想法冒了出来,执行source 命令的窗口 如果断开和 mysql 的连接,会不会终止数据的导入呢?
那就试试!
我用的是 secureCRT 连接的mysql , 点击断开连接后,我在另外一个窗口查询source导入数据对应的表的数据量,数据量不再增长了!
不像刚才,source 导入数据 执行的时候,表的数据量是不断增加的,现在数据量不变了,说明source 导入操作停止了! 大功告成!
写于 March.4, 2021