Importer un fichier MySQL .sql volumineux sous Windows avec Force

Je voudrais importer un fichier MySQL .sql de 350 Mo sur une machine Windows 7. Je le fais habituellement en utilisant

mysql -uuser -p -e "source c:/path/to/file.sql" database 

puisque <ne fonctionne pas dans Powershell.

Mon fichier .sql contient une erreur cette fois-ci. Je préférerais simplement sauter la mauvaise ligne et continuer l’importation. Comment puis-je forcer l’importation pour continuer sous Windows?

Sur un système basé sur unix / linux, je pourrais utiliser

 mysql --force ... < file.sql 

mais –force ne semble pas fonctionner avec la commande -e “source …” (ce qui est compréhensible).

Merci Mike

Vous devrez probablement exécuter Powershell dans la console standard pour pouvoir utiliser < correctement. Techniquement, vous pouvez utiliser get-content et diriger la sortie vers mysql , mais j'ai toujours trouvé que c'était lent, et cela garde en quelque sorte le contenu du fichier en mémoire de la session Powershell.

Voici comment je l'exécuterais à partir de l'invite Powershell (chemin de fichier modifié pour inclure des espaces pour illustrer les guillemets internes, au cas où):

 cmd /C 'mysql -uuser -p --force < "C:\path\with spaces\to\file.sql"' 

[GC]::collect() effacerait apparemment la mémoire, mais vous ne pouvez pas le faire avant d'avoir fini. En ce qui concerne mysql et mysqldump , je ne m'embête pas avec Powershell. L'encodage par défaut utilisé dans > est Unicode, ce qui rend les fichiers de vidage deux fois plus grands que Powershell, à moins que vous ne vous souveniez d'écrire | out-file dump.sql -enc ascii | out-file dump.sql -enc ascii au lieu de > dump.sql .

Je suggère également d’examiner cette réponse SO , qui tire parti de la commande SQL source :