MySQL数据还原与备份

时间:2022-09-14 00:20:02

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服务器的日志文件进行备份。