数据库备份
场景: 有时MySQL 数据库需 导出指定表的数据
1、备份一个或多个表
mysqldump [options] db_name [table_name……]
2、备份一个或多个库
mysqldump [options] –databases dbname……
3、备份所有数据库
mysqldump [options] –all-databases
示例:
1.导出指定表的数据
mysqldump -t database -u username -ppassword --tables table_name1 table_name2 table_name3 >D:\db_script.sql
2.导出指定表的结构
mysqldump -d database -u username -ppassword --tables table_name1 table_name2 table_name3>D:\db_script.sql
3.导出表的数据及结构
mysqldump database -u username -ppassword --tables table_name1 table_name2 table_name3>D:\db_script.sql
4.若 数据中 ,某些表除外,其余表都需导出
mysqldump -h IP -u username -ppassword --default-character-set=utf8 --database database_name --ignore-table=database_name.table_name1
--ignore-table=database_name.table_name2 --ignore-table=database_name.table_name3 >D:\db_script.sql
5.加速导入
mysqldump是单线程导入导出,往往导出很快,导入却很慢。
在导出时添加参数
–max_allowed_packet=67108864 --net_buffer_length=16384
可以在一定程度上加快导入速度
注:这两个参数设置不能大于导入端的参数设置值。
/usr/local/mysql8016/bin/mysqldump --defaults-extra-file=.my.cnf --single-transaction --master-data=2 --triggers --routines --events --set-gtid-purged=off --max_allowed_packet=67108864 --net_buffer_length=16384 --skip-extended-insert --databases db_name> db_name.sql
.my.cnf为server端连接文件,配置如下:
[client]
host=192.168.xx.xx
port=3306
user=bak_user
password=bak_pwd