Mysql提供了很多中备份的方式: 文件备份, 单表数据备份, SQL备份, 增量备份(日志备份)
一、文件备份
1、文本备份: 直接将表对应的文件进行复制保存
Innodb: 不单要备份结构文件,还要备份整个数据文件ibdata1
Myisam: 直接三个文件(跟其他表没有任何关联)
2、还原文件的
Myisam: 直接将三个文件放到对应的数据库下即可(可以)
Innodb: 将结构文件放到数据库, 但是还要替换ibdata1文件(几乎不可行,因为这样为了恢复某些表需要覆盖掉原有的所有数据,是不可行的)
二、单表数据备份
从表里面将数据按照规则取出来, 存储到外部文件(outfile)中,一次只能针对一张表进行备份, 只能备份数据(不能备份结构)
基本语法: 前提是外部文件不能存在(必须由系统自动创建)
Select 字段列表/* into outfile 文件路径 from 表名 [where条件];
如:mysql>select * into outfile 'D:/server/temp/student.txt' from student;
以上备份方式都是按照默认的方式进行处理: 可以自动选择处理方式
Select 字段列表/* into outfile 文件路径 [字段处理] [行处理] from 表名 [where条件];
字段处理: fields
Terminated by: 每个字段以什么结尾, 默认是”\t”(最后一个字段不用结尾)
Enclosed by: 以什么进行包裹, 默认是””, 没有包裹
Escaped by:特殊字符用什么方式转义, 默认是”\\”
行处理: lines
Starting by: 每行以什么开头,默认是””
Terminated by: 行以什么结尾, 默认是”\r\n”
如:
mysql>-- 单表数据备份: 指定处理方式
->select * into outfile 'D:/server/temp/class.txt'
->-- 字段处理
->fields terminated by '-' enclosed by '"'
->-- 行处理
->lines starting by 'BEGIN:'
->from class;
四、还原
1、单表数据还原
mysql>load data infile 'D:/server/temp/class.txt'
->into table class
->-- 字段处理
->fields terminated by '-' enclosed by '"'
->-- 行处理
->lines starting by 'BEGIN:';
五、SQL备份
SQL备份不是通过mysql客户端内部执行SQL指令的, 通过mysqldump.exe备份客户端
基本语法:在cmd命令行下:
Mysqldump.exe 连接认证(hPup) 数据库 [数据表1 数据表2...] > 外部备份文件所在路径(.sql)
1、单表备份
C:>mysqldump.exe -h主机名 -P端口 -u用户名 -p密码 数据库名 表名 > 路径.sql
2、多表备份: 表与表之间使用空格分隔
C:>mysqldump.exe -h主机名 -P端口 -u用户名 -p密码 数据库名 表名1 表名2 > 路径.sql
3、整库备份: 指定数据库名字即可
C:>mysqldump.exe -h主机名 -P端口 -u用户名 -p密码 数据库名 > 路径.sql
六、SQL还原
1、使用mysql客户端进行还原
C:>mysql -h主机名 -P端口 -u用户名 -p密码 数据库名 < sql备份文件
2、通过SQL指令实现
mysql>source 路径.sql
注:以上几种方式备份都比较浪费空间(尤其是SQL备份)
六、增量备份
只对改变的东西进行备份: 是针对mysql的系统日志进行备份,指定备份的起始点到终点
mysql 单表备份 mysql备份单张表
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
mysql 备份与恢复
mysql 逻辑备份与物理备份 (不含gtid)
mysql 数据 数据库