创建以下表

创建普通用户backup并给权限

备份数据库school到/backup目录
mysqldump -u backup -p school > /backup/school.sql

备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库
mysqldump -u backup -p --add-drop-database mysql > /backup/mysql.sq

直接将MySQL数据库压缩备份
mysqldump -u backup -p mysql | gzip > /backup/mysql.sql.gz

备份MySQL数据库某个(些)表。此例备份student表
mysqldump -u backup -p school student > /backup/student.sql

同时备份多个MySQL数据库(其他数据库素材自行准备
mysqldump -u backup -p -B mysql5 mysql6 mysql7 > /backup/many_mysql.sq
-B 作用:创建数据库和切换到数据库,恢复时不用创建数据库和删表。备份多个库,-B 数据库1 数
据库2

仅仅备份数据库结构
mysqldump -u backup -p -d school > /backup/school1.sql
-d:只备份库结构,不包含数据内容

备份服务器上所有数据库
mysqldump -u backup -p --all-databases > /backup/all_mysql.sql
-all: 备份所有数据库

还原MySQL数据库
先删除mysql数据库
drop databases mysql;

然后还原
mysql -u root -p -B mysql < /backup/mysql.sql

还原压缩的MySQL数据库
先删除mysql数据库

解压还原
gunzip < /backup/mysql.sql.gz | mysql -uroot -p mysql

使用xtrabackup 备份数据库
xtrabackup 备份数据库,实现完全热备份与增量热备份
Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工
具InnoDB Hotbackup的一个很好的替代品。
Xtrabackup有两个主要的工具:xtrabackup、innobackupex
xtrabackup 只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表。
innobackupex 是参考了InnoDB Hotbackup的innoback脚本修改而来的.innobackupex是一个perl脚
本封装,封装了xtrabackup。主要是为了方便的同时备份InnoDB和MyISAM引擎的表,但在处理myisam时
需要加一个读锁。并且加入了一些使用的选项。如slave-info可以记录备份恢复后作为slave需要的一些信
息,根据这些信息,可以很方便的利用备份来重做slave。
备份数据库
nnobackupex --user=root --password=root --defaults-file=/etc/my.cnf --databases="school"
/backup/
使用mydumper备份数据库
mydumper -u backup -p redhat -b school -o /backup/school3.sql

使用mydumper恢复数据库
先删除数据库school
mysql -uroot -predhat -e 'drop database school'
还原
myloader -u root -p redhat -d /backup/school3.sql -o -B school






![P3183 [HAOI2016] 食物链](https://img-blog.csdnimg.cn/img_convert/885bb82396e1705f14c40c0cbdb12fa9.png)













