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

get*_*nge 5 mysql sql windows import powershell

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

mysql -uuser -p -e "source c:/path/to/file.sql" database
Run Code Online (Sandbox Code Playgroud)

因为<在Powershell中不起作用.

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

在基于unix/linux的系统上,我可以使用

mysql --force ... < file.sql
Run Code Online (Sandbox Code Playgroud)

但是--force似乎不能使用-e"source ..."命令(可以理解的是这样).

谢谢,迈克

Joe*_*ant 13

您可能必须让Powershell在标准控制台中执行此操作才能<正常使用.从技术上讲,你可以使用get-content和管道输出mysql,但我总是发现它很慢,它仍然保留文件内容在Powershell会话的内存中.

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

cmd /C 'mysql -uuser -p --force < "C:\path\with spaces\to\file.sql"'
Run Code Online (Sandbox Code Playgroud)

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