在 5.5.23 服务器上(此时卡在那里),我有一个长时间运行的 LOAD DATA INFILE 语句,我需要停止它,因为它没有按预期工作,而且我不想等待几个小时才能完成。该表是 InnoDB,我不介意它被破坏,我可以轻松地重新创建它。
停止此作业的最佳方法是什么,而不会冒损坏此表以外的任何内容的风险?如果我只按 Control-C 执行此命令会怎样?
答案1
以具有 SUPER 权限(即 root)的用户身份连接到 MySQL 数据库;使用以下命令找到正确的进程SHOW PROCESSLIST
:
mysql> SHOW FULL PROCESSLIST\G
*************************** 1. row ***************************
Id: 3113
User: dumbass
Host: localhost
db: example
Command: Query
Time: 0
State: NULL
Info: LOAD DATA INFILE
...
*************************** 2. row ***************************
Id: 3123
User: hbruijn
Host: localhost
db: example
Command: Query
Time: 0
State: NULL
Info: SHOW FULL PROCESSLIST
和kill
有问题的线索。
mysql> KILL QUERY 3113