一、数据库备份
1.备份单个数据库
语法:
mysqldump -u 用户名 -p 密码 数据库名 > 备份的文件名
参数:
-A :备份所有数据库
-B :指定多个库
-F :刷新binlog日志
–compact :去掉注释,debug调试使用
–master-data:增加binlog日志文件名及对应的位置点
【实例1】备份test_db数据库中tb_emp1文件
# mysqldump -uroot -p test_db > /backup/tb_emp1.sql
【实例2】
备份
mysqltest4
数据库中
student
文件
# mysqldump -uroot -p mysqltest4 > /backup/student.sql
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;
2.mysql命令恢复数据(终端上操作mysql)
删除test_db数据库中tb_emp1
# mysql -uroot -p -e "use test_db;drop table tb_emp1;"
恢复数据
# mysql -uroot -p test_db < /backup/tb_emp1.sql
3.指定压缩命令备份的数据恢复
备份:`mysqldump -u root -p 文件名|gzip > 文件名.sql.gz`
# mysqldump -uroot -p mysqltest4|gzip > grade.sql.gz
恢复:`gunzip < 文件名.sql.gz | mysql -u用户名 -p密码(也可不输入) 数据库名`
# gunzip < /backup/grade.sql.gz |/usr/local/mysql/bin/mysql -uroot -p mysqltest4