使用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#控制台应用程序。