我想在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 …”命令(可以理解).
谢谢,
麦克风
您可能必须让Powershell在标准控制台中执行此操作才能使用<正常.从技术上讲,你可以使用get-content并将输出传递给MysqL,但我总是发现它很慢,并且它仍然以某种方式将文件内容保存在Powershell会话的内存中. 这就是我如何从Powershell提示符执行它(更改文件路径以包含空格以演示内部引号,以防万一):
cmd /C 'MysqL -uuser -p --force < "C:\path\with spaces\to\file.sql"'
[GC] :: collect()显然会清除内存,但是在完成之后你才能这样做.说到MysqL和MysqLdump,我不打扰Powershell. >中使用的默认编码是Unicode,使得转储文件的容量是Powershell的两倍,而不是cmd,除非你记得写| out-file dump.sql -enc ascii而不是> dump.sql.