终止长时间运行的“LOAD DATA INFILE”进程后,MySQL 无法启动

终止长时间运行的“LOAD DATA INFILE”进程后,MySQL 无法启动

我终止了一个 MySQL 进程,该进程正在运行一条LOAD DATA INFILE命令,将一个 9GB 的 .csv 文件加载到 InnoDB 数据库的表中。

现在,当我跑步时mysql DATABASE,它就停下来并显示

Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

我现在能做什么?我猜它正在进行因LOAD DATA INFILE命令中断而引起的一些修复和清理工作。

解决方案:

我尝试过service mysql restart,但我决定在重新启动后强制终止所有 mysqld 进程,这花费了 1 个多小时,而且仍然不知道还需要多少个小时才能完成。

然后我service mysql start又开始运行 MySQL 服务器。幸运的是,InnoDB 重建过程相当快,大约需要 15 分钟即可完成,没有数据丢失。

答案1

根据数据库的大小或负载,读取表信息可能是一个密集的过程。

当您终止运行 MySQL 命令的系统进程时,您可能没有终止 MySQL 连接。

运行,mysql -A DATABASE或者只是mysql查看进程列表show full processlist;,如果您想终止连接,则运行kill processnumber;

相关内容