mysql 备份命令mysqldump

时间:2022-09-21 23:40:20
mysqldump
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';