Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use mysqlimport to read in result of mysqldump --databases

I have successfully dumped an entire MySQL database using

mysqldump --databases

generating a nice .txt file. However, I can't see how to read the whole file back into MySQL in one go; mysqlimport seems to want just one table at a time.

like image 334
Charles Anderson Avatar asked Feb 19 '10 17:02

Charles Anderson


3 Answers

When you've generated some file (say db-dump.sql) with mysqldump, you can import it to your other database with the mysql command :

mysql --user=XXX --password=XXX --host=YOUR_HOST DATABASE_NAME < db-dump.sql 


And, if you don't want the password to appear in a command, you can use :

mysql --user=XXX -p --host=YOUR_HOST DATABASE_NAME < db-dump.sql 


As a sidenote, if you want to copy one DB to another one, you don't need to use a file, and can just directly pipe the output of mysqldump to mysql :

mysqldump --user=XXX --password=XXX --host=SOURCE_HOST SOURCE_DB | mysql --user=XXX --password=XXX --host=DESTINATION_HOST DESTINATION_DB 

(It should even be faster, as you're not using a temporary file that resides on disk)

like image 152
Pascal MARTIN Avatar answered Sep 22 '22 01:09

Pascal MARTIN


I do this frequently:

mysqldump -u username -p databasename > dump.sql

To load:

mysql -u username -p  targetdatabasename < dump.sql

Switch -p instructs the database to prompt you to enter the password for the user username once the command launches.

Your question is probably duplicate though.

like image 39
Evgeny Avatar answered Sep 20 '22 01:09

Evgeny


You can just use 'source' from within the mysql client:

source dumpfile.sql

Or supply directly from command line:

mysql -u user -p password database < source dumpfile.sql

This is because the result of mysqldump is just a SQL file that can be run via mysql as usual.

like image 39
Joe Avatar answered Sep 21 '22 01:09

Joe