mysqlubuntu

Importing large sql file to MySql via command line


I'm trying to import an sql file of around 300MB to MySql via command line in Ubuntu. I used

source /var/www/myfile.sql;

Right now it's displaying a seemingly infinite rows of:

Query OK, 1 row affected (0.03 sec)

However it's been running a little while now. I've not imported a file this large before so I just want to know whether this is normal, if the process stalls or has some errors, will this show up in command line or will this process go on indefinitely?

Thanks


Solution

  • You can import .sql file using the standard input like this:

    mysql -u <user> -p<password> <dbname> < file.sql

    Note: There shouldn't space between <-p> and <password>

    Reference: http://dev.mysql.com/doc/refman/5.0/en/mysql-batch-commands.html

    Note for suggested edits: This answer was slightly changed by suggested edits to use inline password parameter. I can recommend it for scripts but you should be aware that when you write password directly in the parameter (-p<password>) it may be cached by a shell history revealing your password to anyone who can read the history file. Whereas -p asks you to input password by standard input.