mysql export & import (backup and restore)

Export Database to sql file

* following commands are run in "cmd" window

example 1: use user "root" pwd "123456" to backup localhost database "chtl_db" to backup.sql file
mysqldump -uroot -p123456 chtl_db > F:/backup.sql

奇怪,我如果存到c盘,就有access is denied的error

example 2 backup server 123.123.123.123 database "chtl_db" to backup.sql file
mysqldump -uroot -p123456 -h 123.123.123.123 chtl_db > F:/backup.sql

example 3 backup database "chtl_db" only "table1" table
mysqldump -uroot -p123456 chtl_db table1 > F:/backup.sql

example 4 backup database "chtl_db" only "table1" and "table2" tables
mysqldump -uroot -p123456 chtl_db table1 table2 > F:/backup.sql



Import sql file "f:/backup.sql" to database "test_db"

* following commands are run in "cmd" window
1. >mysql -u root -p
2. >use test_db;
3. >source f:/backup.sql


注意:如果导入的table很大,那么在执行"source"命令的最后会停很长一段时间,好像死机了一样。一定得耐心等待(100万的records估计

要几分钟)。如果是真的停止了没反应,建议你在mysqldump时把这个table分拆成几part来导出,然后再将这几part逐个逐个导入。

例如你有一个table "table1",有9999999个record,你分成10 part导出,每part 100万个record

导出第一个100万个records
>mysqldump --where="true LIMIT 0,1000000" -uroot -p123456 chtl_db table1 > F:/table1_part1.sql

导出第二个100万records (注意要用2个选项:--no-create-info --skip-add-drop-table。这样就不会创建create and drop table语句
>mysqldump --where="true LIMIT 1000000,1000000" --no-create-info --skip-add-drop-table -uroot -p123456 chtl_db table1 > F:

/table1_part2.sql

....

导出最后部分的record (注意,不能用limit 9000000,-1,应该计算出最后剩多少个record,该例是剩999999)
>mysqldump --where="true LIMIT 9000000,999999" --no-create-info --skip-add-drop-table -uroot -p123456 chtl_db table1 > F:

/table1_part10.sql

然后在导入时,就将这几个sql file依次逐个导入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值