我想在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会话的内存中。
<
get- content
mysql
这就是我在Powershell提示符下执行的方式(已更改文件路径,以包括空格来演示内部引号,以防万一):
cmd /C 'mysql -uuser -p --force < "C:\path\with spaces\to\file.sql"'
[GC]::collect() 显然会清除内存中的内容,但是直到完成后您才能执行此操作。关于mysqland mysqldump,我不必理会Powershell。所使用的默认编码>是Unicode,使转储文件的大小超出Powershell的两倍,cmd除非您记得编写| out-file dump.sql -enc ascii而不是> dump.sql。
[GC]::collect()
mysqldump
>
cmd
| out-file dump.sql -enc ascii
> dump.sql