一、数据库备份
1.备份单个数据库
语法:
mysqldump -u 用户名 -p 密码 数据库名 > 备份的文件名
参数:
-A :备份所有数据库
-B :指定多个库
-F :刷新binlog日志
–compact :去掉注释,debug调试使用
–master-data:增加binlog日志文件名及对应的位置点
【实例1】备份test_db数据库中tb_emp1文件
![](https://i-blog.csdnimg.cn/blog_migrate/7ffb9d7a72ebcf08dd38e997125e7677.png)
![](https://i-blog.csdnimg.cn/blog_migrate/08cf06e499897d70828a936a346832ee.png)
# mysqldump -uroot -p test_db > /backup/tb_emp1.sql
![](https://i-blog.csdnimg.cn/blog_migrate/af053ea83b80354eeeb4c4941709438a.png)
【实例2】
备份
mysqltest4
数据库中
student
文件
# mysqldump -uroot -p mysqltest4 > /backup/student.sql
![](https://i-blog.csdnimg.cn/blog_migrate/f9892ac504d3cdd952390b41c15e3c89.png)
2.备份数据表
-
指定字符集备份
mysqldump -u 用户名 -p --default-character-set=utf8 数据库名 > 备份文件名.sql
-
调用mysqldump带有- -databases选项备份指定的数据库
mysqldump –u 用户名 –p --databases db1 db2 db3 … > 备份文件名.sql
-
调用mysqldump备份一个指定的数据库:
mysqldump –u 用户名 –p --databases 数据库名 > 备份文件名.sql
-
调用mysqldump备份某个数据库中的某几张表:
mysqldump –u 用户名 –p 数据库名 表名1 表名2 表名3… > 备份文件名.sql
-
指定压缩命令备份数据(指定压缩命令备份比不指定的高出接近三倍的效率)
mysqldump -u 用户名 -p 数据库名|gzip > 备份文件名.sql.gz
-
导出test库中study表的结构和数据,并刷新binlog(常用)
mysqldump -u 用户名 -p -f --tables study|gzip > 备份文件名.sql.gz
二、数据恢复
1.source恢复数据
mysql> source /backup/tb_emp1.sql;
![](https://i-blog.csdnimg.cn/blog_migrate/95a7be9e915138813b40d22bc7a9abec.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f9bfb37701668af02cf1497e5d9a963f.png)
2.mysql命令恢复数据(终端上操作mysql)
删除test_db数据库中tb_emp1
# mysql -uroot -p -e "use test_db;drop table tb_emp1;"
![](https://i-blog.csdnimg.cn/blog_migrate/8a684a89e08c7b62bfd70bd0b2e9ebc8.png)
恢复数据
# mysql -uroot -p test_db < /backup/tb_emp1.sql
![](https://i-blog.csdnimg.cn/blog_migrate/52755de437d41d9c89c00647e8921c86.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2893316c9df1f9d24cc2cf0c00ce1f53.png)
3.指定压缩命令备份的数据恢复
备份:`mysqldump -u root -p 文件名|gzip > 文件名.sql.gz`
# mysqldump -uroot -p mysqltest4|gzip > grade.sql.gz
![](https://i-blog.csdnimg.cn/blog_migrate/5fdbbb3c5a2c48544d4a8489f70fe8e7.png)
恢复:`gunzip < 文件名.sql.gz | mysql -u用户名 -p密码(也可不输入) 数据库名`
# gunzip < /backup/grade.sql.gz |/usr/local/mysql/bin/mysql -uroot -p mysqltest4
![](https://i-blog.csdnimg.cn/blog_migrate/b285e3fa27564afc0c928f776c90bd70.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2bb9de56dc82ecd945f77d4f6eead701.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b6c70079cbed2bdb356488d6643789cc.png)