Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Import large MySQL .sql file on Windows with Force

I would like to import a 350MB MySQL .sql file on a Windows 7 machine. I usually do this by using

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

since < doesn't work in Powershell.

My .sql file has an error in it this time. I'd prefer to just skip the bad row and continue the import. How can I force the import to continue on Windows?

On a unix/linux based system, I could use

mysql --force ... < file.sql

but --force doesn't seem to work with the -e "source ..." command (understandably so).

Thanks, Mike

like image 258
getWeberForStackExchange Avatar asked Jun 15 '11 22:06

getWeberForStackExchange


People also ask

How do I import a large SQL file into SQL Server?

Here comes in handy the sqlcmd command line tool. It can import large . sql files, can be run from a batch script, installer, etc. How to use sqlcmd command-line tool to import large .

How do I run a big SQL script in MySQL?

To execute a large script, do the following: To open the Execute Script Wizard, go to the Database menu, and click Execute Large Script. Click the Connection field to select a connection to a required database server against which you want to execute your script.


1 Answers

You're probably going to have to have Powershell execute this in the standard console in order to use < properly. Technically you could use get-content and pipe the output to mysql, but I've always found that to be slow, and it somehow still keeps the file contents in memory of the Powershell session.

This is how I would execute it from the Powershell prompt (changed file path to include spaces to demonstrate inner quotes, just in case):

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

[GC]::collect() would apparently clear it up the memory, but you can't do that until after it's done anyway. When it comes to mysql and mysqldump, I don't bother with Powershell. The default encoding used in > is Unicode, making dump files twice as big out of Powershell as out of cmd unless you remember to write | out-file dump.sql -enc ascii instead of > dump.sql.

like image 128
Joel B Fant Avatar answered Nov 01 '22 17:11

Joel B Fant