mysql - 安全地取消 MySQL 导入
问题描述
我正在尝试上传一个大型数据库:
$mysql -u 用户名 -p MY_DATABASE < MY_DATABASE.sql
但是这个过程非常缓慢,我想取消并使用不同的设置重试。如何“安全地”取消此上传?或者在强制终止导入后清理数据库的最佳方法是什么?
解决方案
你可以杀死你的 MySQL 进程MY_DATABASE.sql
这向您显示正在运行的进程:
show processlist;
然后,如果其他进程正在运行,您应该通过process_id
用户的正确选择和上一个命令显示的时间来终止选择它的进程,以了解哪个是正确的:
kill process_id
我认为清理数据库是最难的工作,因为它取决于MY_DATABASE.sql
内容:如果它填充一个表,你可以简单地截断它,如果它创建一个数据库并上传表、视图、存储过程和其他元素,你应该放弃数据库。
如果您在杀死进程(创建数据库?创建表或其他元素?)后查看MY_DATABASE.sql
内容和服务器内容,您将了解该怎么做。
如果,正如我想象的那样,脚本完全创建了一个数据库,您应该只需要删除从先前中断的上传创建的数据库(如果有的话),然后重新开始上传。