使用Force在Windows上导入大型MySQL .sql文件

我想在Windows 7机器上导入一个350MB的MySQL .sql文件。 我通常通过使用这个

mysql -uuser -p -e "source c:/path/to/file.sql" database 

因为<在Powershell中不起作用。

我的.sql文件这次有一个错误。 我宁愿跳过坏行,继续导入。 我如何强制导入到Windows上继续?

在基于Unix / Linux的系统上,我可以使用

 mysql --force ... < file.sql 

但是–force似乎不适用于-e“source …”命令(可以理解)。

谢谢,迈克

Solutions Collecting From Web of "使用Force在Windows上导入大型MySQL .sql文件"

您可能必须让Powershell在标准控制台中执行此操作才能正确使用。 从技术上讲,你可以使用get-content并将输出传递给mysql ,但是我总是发现速度很慢,而且它仍然将文件内容保留在Powershell会话的内存中。

这是我将如何从Powershell提示符执行它(更改文件路径以包含空格来演示内部引号,以防万一):

 cmd /C 'mysql -uuser -p --force < "C:\path\with spaces\to\file.sql"' 

[GC]::collect()显然会清除它的内存,但不能这样做,直到它完成之后。 当涉及到mysqlmysqldump ,我不打扰Powershell。 在默认编码中使用的是Unicode,这使得转储文件的两倍> Powershell,而不是cmd除非你记得写| out-file dump.sql -enc ascii | out-file dump.sql -enc ascii而不是> dump.sql

我建议也看看这个SO答案 ,它利用source SQL命令: