With cmd I’d run mysql -uroot database < filename.sql to import a database dump (read from file and pass to MySQL). However, < is “reserved” in powershell.
Instead, in powershell I use get-content filename.sql | mysql -uroot database. The caveat is that powershell reads filename.sql completely into memory before passing it along to MySQL, and with large database dumps it simply runs out of memory.
Obviously, I could execute this via cmd but I have a handful of powershell scripts automating various tasks like this and I don’t want to have to rewrite them all in batch. In this particular case, filename.sql is a variable that’s specified via PS parameters when the automation kicks off.
So how do I get around this memory limitation? Is there another way to pipe the file contents into MySQL directly?
You can Try
or
If things start to get complicated maybe you should write a C# Console application that does the complex tasks.