MySql 数据备份与还原
备份:将当前已有的数据或者记录保留
还原:将已经保留的数据恢复到对于的表中
为什么要做备份还原?
1. 防止数据丢失(被盗,无操作)
2. 保护数据记录
数据备份的方式:
数据表备份,单表数据备份,SQL备份,增量备份
数据表备份
不需要通过SQL来备份,直接进入到数据库文件夹复制对应的表结构以及数据文件,
以后还原的时候,直接将备份的内容放进去即可。
数据表备份的前提条件:格局不同的存储引擎有不同的区别
对比myisam和InnoDB:数据存储方式
InnoDB:只有表结构,数据全部存储在.ibd文件中
MyISAM:表结构,数据和索引单独分开存储
此种方式只试用于MyISAM存储引擎,直接复制三个文件到其他数据库文件夹下即可
单表数据备份
每次只能备份一张表,只能备份数据(表结构不能备份)
通常使用方法:将表中的数据进行导出到文件
备份方式:从表中选取一部分数据保存到外部的文件中(outfile)
select */字段列表 into outfile 文件所在路径 from 数据源 -- 提示 外部文件不能存在
如果保存成.txt文件,不能直接用记事本打开,会改变原来的字符集
可以自己指定字段和行的处理方式
select */字段列表 into outfile 文件所在路径 fields 字段处理 lines 行处理 from 数据源;
fileds: 字段处理
enclosed by:字段使用什么内容进行包裹,默认时候' ',空字符串
terminnated by:字段以什么分隔,默认是'\r',tab键
escaped by:特殊符号以什么方式去处理'\\',使用反斜杠转义
lines:行处理
starting by:每行以什么开始,默认是' ',空字符串
terminated by:每行以什么结束,默认是'\r\n',换行符
还原方式:将外部保存的数据重新恢复到表中
load data infile 文件所在路径 into table 表名(字段名) fileds 字段处理 lines 行处理; -- 怎么备份怎么还原
SQL备份
备份的是SQL语句,系统会对表结构以及数据进行处理,变成对应的sql语句,然后进行备份:
还原的时候,直接执行SQL指令即可(主要针对表结构)。
备份方法:mysql没有提供备份指令,需要mysql提供的软件:mysqldump.exe
mysqldump/mysqldump.exe -h *** -u *** -p*** 数据库名字 1 [数据库表名字1 数据库表名字2 ] > 外部的文件目录(建议使用.sql后缀)
SQL 还原数据库
方案1:使用mysql.exe 客户端还原
mysql.exe/mysql -h *** -u *** -p*** 数据库名字 < 备份文件目录
方案2:使用SQL指令还原
source 备份文件所在目录
优点:直接备份表结构
缺点:会浪费空间
增量备份
不是针对数据或者SQL指令进行备份:是针对mysql服务器的日志文件进行备份
增量备份:指定时间段开始备份,备份数据不会重复,而且所有的操作都对备份