13.数据备份与还原

  • 备份:将当前已有的数据或者记录保留
  • 还原:将已保留的数据恢复到对应的表中
  • 为什么要做数据备份与还原?
    (1)防止数据丢失:被盗、误操作
    (2)保护数据记录
  • 数据备份还原的方式有很多种:数据表备份、单表数据备份、SQL备份、增量备份

数据表备份

  • 不需要通过SQL来备份:直接进入到数据库文件夹下赋值对应的表结构以及数据文件,以后还原的时候,直接将备份的内容放到对应的数据库目录下即可
  • 数据表备份有前提条件: 根据不同的存储引擎有不同的区别.
  • 储引擎: mysql进行数据存储的方式: 主要是两种: innodb(免费)和myisam(免费)
  • 对比myisam和innodb:数据存储方式
    (1)innodb:只有表结构文件,数据全部存储到ibdata1文件中
    在这里插入图片描述
    在这里插入图片描述
    (2)myisam存储引擎:表结构文件、数据文件、索引文件全部单独分开存储
    在这里插入图片描述
  • 数据表备份只能备份存储引擎为myisam的数据库:直接拷贝三个文件到目标数据库下即可:表结构文件、数据文件以及索引文件

单表数据备份

  • 单表数据备份:每次只备份一张表:只能备份数据:表结构是不能备份的
  • 通常的使用:将表中的数据进行导出到文件
  • 备份:从表中选出一部分数据保存到外部文件中
select */字段列表 into outfile 文件所在路径 from 数据源;
  • 前提:外部文件不存在
  • 文件所在路径使用字符串:即单引号进行包裹
    在这里插入图片描述
  • 高级备份:自己制定字段和行处理方式
select */字段列表
into outfile '文件所在路径'
fields 字段处理 
lines 行处理 
from 数据源;

fields:字段处理
	enclosed by:字段使用什么内容包裹:默认是啥也没有
	terminated by:字段以什么结束:默认是tab键,即"\t"
	escaped by:特殊符号用什么方式处理:默认是"\\",即使用反斜杠转义
	
lines:行处理
	starting by:每行以什么开始:默认是空字符串,即什么也没有
	terminated by:每行以什么结束:默认是换行,即"\r\n"

在这里插入图片描述

select * 
into outfile 'c:\stu.txt'
fields enclosed by '"' -- 字段以双引号包裹
	   terminated by '|' -- 字段以|结束	
lines starting by 'START:' -- 每行以START:字符串开头
from student;
  • 数据还原:将一个在外部保存的数据重新恢复到表中:前提:表结构必须存在:怎么备份的就怎么还原
load data infile '文件所在路径'
into table 表名称[(字段列表)] 
fileds 字段处理
lines 行处理

在这里插入图片描述

  • 中文乱码的原因:文件stu.tx编码字符集与mysqld.exe解码字符集不相同
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 乱码问题还是没有解决

SQL备份

  • SQL备份:备份的是SQL语句:系统会对表结构以及数据进行处理,变成对应的SQL语句,然后进行备份:还原的时候只需要执行SQL指令即可:主要是针对表结构
  • 备份:mysql没有提供专门的备份指令:需要利用mysql数据库提供的软件mysqldump.exe:mysqldump.exe也是一种客户端,需要操作数据库服务器:必须连接认证:
mysqldump.exe -hPup 数据库名字 [数据表1 数据表2 ...] > '外部文件';
  • 单表备份
    在这里插入图片描述
  • mysqldump/mysqldump.exe -hPup 数据库名称 [数据表1 数据表2 ] > 文件所在路径:主要结尾不能有分号,如果有分号则备份不会成功
mysqldump/mysqldump.exe -hlocalhost -P3306 -uroot -proot  数据库名称 [数据表1 数据表2 ] > 文件所在路径

mysqldump/mysqldump.exe -hlocalhost -P3306 -uroot -p  数据库名称 [数据表1 数据表2 ] > 文件所在路径
>: 输入密码

在这里插入图片描述
在这里插入图片描述

  • 多表备份
    在这里插入图片描述
  • 整库备份
    在这里插入图片描述
  • SQL数据还原:两种还原方式
  • 方案1:使用mysql.exe客户端进行还原
mysql -hPup 数据库名字 < 文件所在路径

在这里插入图片描述

  • 使用SQL指令还原:在mysql客户端连接下:source 文件所在路径
    在这里插入图片描述
    在这里插入图片描述

增量备份

  • 不是针对数据或者SQL指令进行备份: 是针对mysql服务器的日志文件进行备份
  • 增量备份: 指定时间段开始进行备份., 备份数据不会重复, 而且所有的操作都会备份(大项目都用增量备份)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值