我终止了一个 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;
。