一、导出
1. 导出所有数据库
mysqldump -uroot -proot --all-databases >/tmp/all.sql
2. 导出指定数据库
mysqldump -uroot -proot --databases db1 db2 >/tmp/user.sql
3. 导出指定表
mysqldump -uroot -proot --databases db1 --tables a1 a2 >/tmp/db1.sql
4. 导出部分记录
mysqldump -uroot -proot --databases db1 --tables a1 --where='id=1' >/tmp/a1.sql
mysqldump -uroot -proot --databases db1 --tables a1 --where="id='a'" >/tmp/a1.sql
5. 参数:不带create、drop语句
mysqldump -uroot -proot --no-create-info --all-databases >/tmp/all.sql
6. 参数:不带数据库,只有结构
mysqldump -uroot -proot --no-data --all-databases >/tmp/all.sql
7. 参数:导出存储过程和自定义函数--routines, -R
mysqldump -uroot -p --host=localhost --all-databases --routines
8. 压缩备份:
备份:
mysqldump -uroot -proot --databases abc 2>/dev/null |gzip >/abc.sql.gz
还原:
gunzip -c abc.sql.gz |mysql -uroot -proot abc
9. 跨服务器复制db
mysqldump --host=h1 -uroot -proot --databases db1 |mysql --host=h2 -uroot -proot db2
两边的db必须都存在
10. 导出前清理
导出前可以先看看各个表的数据量,对于数据量很大的日志表,提前清理一下,可以有效提高效率。
use information_schema;
select table_name,table_rows from tables
where TABLE_SCHEMA = 'lighthouse'
order by table_rows desc;
二、导入
use test;
source /home/username/test20180220.sql