Возможно, вам понадобится, чтобы 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
.