使用cmd,我可以运行mysql -uroot database < filename.sql来导入数据库转储(从文件读取并传递给MySQL)。但是,<在powershell中是“保留”的。

相反,在powershell中,我使用get-content filename.sql | mysql -uroot database。需要注意的是,powershell在将filename.sql传递给MySQL之前将其完全读入内存,而对于大型数据库转储,它只是用尽了内存。

显然,我可以通过cmd来执行此操作,但是我有一些Powershell脚本可以自动执行诸如此类的各种任务,因此我不想批量重写它们。在这种特殊情况下,filename.sql是在自动化启动时通过PS参数指定的变量。

那么如何解决此内存限制?还有另一种将文件内容直接传递到MySQL的方法吗?

最佳答案

你可以试试

mysql -uroot -pYourPassword -e "source C:\temp\filename.SQL"

或者
mysql --user=root --password=YourPassword --execute="source C:\temp\filename.SQL"

如果事情开始变得复杂,也许您应该编写一个执行复杂任务的C​​#控制台应用程序。

10-05 17:51
查看更多