1,导出某数据库,结构+数据
mysqldump -h127.0.0.1 -uroot -pxxx --opt db_name | grep -9 >/root/bak/db_name.gz
2,导出数据库,结构+数据+过程&函数
mysqldump -h127.0.0.1 -uroot -pxxx --opt -R db_name >db_name.sql
3,多个库
mysqldump -h127.0.0.1 -uroot -pxxx --opt --datbases db_name1 db_name2 >db.sql
4,导出所有库
mysqldump -h127.0.0.1 -uroot -pxxx --opt --all-databases > alldb.sql
5,只导出结构
mysqldump -h127.0.0.1 -uroot -pxxx --opt --no-data db_name > db_info.sql
6,只导出数据
mysqldump -h127.0.0.1 -uroot -pxxx --opt --no-create-info db_name > db1_onlydata.sql
7,导出某张表
mysqldump -h127.0.0.1 -uroot -pxxx --opt db_name table1 > db1_table1.sql
8,导出某张表的数据
mysqldump -h127.0.0.1 -uroot -pxxx --opt --no-create-info db_name table1 > db1_table1_data.sql
9,只导出存储过程
mysqldump -uroot -pXXX -ntd -R t > /dbbak/t.sql -- -n: --no-create-db -d: --no-data -t: --no-create-info
--opt Same as --add-drop-table, --add-locks, --create-options,
--quick, --extended-insert, --lock-tables, --set-charset,
and --disable-keys. Enabled by default, disable with
--skip-opt
其他常用参数:
--events:导出scheduler event
--routines:存储过程和函数 简写-R
--triggers:触发器,默认导出
一个压缩备份脚本
mysqldump -uusername -ppassword --opt --routines --triggers --events --all-databases --skip-lock-tables | gzip >`date +%Y%m%d`.sql.gz
#find /home/mysqlbak/ -mtime +7 -name '*[1-9].sql' -exec rm -rf {} \;
find /home/mysqlbak/ -mtime +10 -name '*.sql.gz' -exec rm -rf {} \;
还原解压缩备份
gunzip < xxx.sql.gz | mysql -uusername -ppassword databasename
如果导入的过程或者视图带有definer可以批量修改
SELECT * FROM MYSQL.PROC T WHERE T.DB='T';
SELECT * FROM INFORMATION_SCHEMA.VIEWS T WHERE T.TABLE_SCHEMA='DB';
SELECT * FROM INFORMATION_SCHEMA.TABLES T WHERE T.TABLE_SCHEMA='DB';