MySQL数据还原与备份
1. 创建表时使用不同的引擎(Innodb 或 Myisam)
数据存储方式不同:
Innodb:只有表结构,数据全部存储在ibdata1文件中
Myisam:表、数据和索引全部单独分开存储(当创建一张表后,数据库文件夹中会同时生成三个文件,frm文件存储结构,MYD文件存储数据, MYI文件存储索引)
针对Myisam存储引擎的文件备份,可以直接复制三个文件到指定的数据库下,即可使用。
2. 单表数据的备份与还原
单表数据备份
每次只能备份一张表,且只能备份数据,表结构不能备份。
通常的使用:将表中的数据导出到文件
备份:从表中选出一部分数据保存到外部文件(outfile)中
语法:select */字段列表 into outfile '文件所在路径' from 数据源; --前提是外部文件不存在
高级备份:自己指定字段和行的处理方式
语法:select */字段列表 into outfile '文件所在路径' fields 字段处理 lines 行处理 from 数据源;
fields:字段处理
enclosed by:字段用什么包裹,默认是' ' , 空字符串
terminated by:字段以什么结束,默认是\t,即tab键
escaped by:特殊符号用什么方式处理,默认是\\,即使用反斜杠转义
lines: 行处理
starting by:每行以什么开始,默认是' ' , 空字符串
terminated by:每行以什么结束,默认是\r\n,即换行符
例: select * into outfile 'D:/server/temp/class.txt' -- 字段处理 fields enclosed by '"' --数据使用双引号包裹 terminated by '|' --使用竖线分割字段数据 -- 行处理 lines starting by 'start:' --每行以start:开头 from my_class;
数据还原:将一个在外部保存的数据重新恢复到表中(表结构必须存在)
语法:load data infile '文件所在路径' into table 表名[(字段列表)] fields 字段处理 lines 行处理
怎么备份的,怎么还原,fields 字段处理 lines 行处理参照文件备份时的设置。
3. SQL备份
https://www.cnblogs.com/bk-jerry/p/9481144.html
方案2:使用SQL指令还原
source 备份文件所在路径;
4. 增量备份
增量备份是针对mysql服务器的日志文件进行备份。