​学会用各种姿势备份和还原MySQL数据库

备份: 将已有的数据或者结构进行复制保存: 以防数据或者结构出现问题: 可以从备份的数据中进行还原.

Mysql提供了很多中备份的方式:

  • 文件备份
  • 单表数据备份
  • SQL备份
  • 增量备份(日志备份)

一、文件备份

文本备份: 直接将表对应的文件进行复制保存

  • Innodb: 不单要备份结构文件,还要备份整个数据文件ibdata1
  • Myisam: 直接三个文件(跟其他表没有任何管理)

还原文件

  • Innodb: 将结构文件放到数据库, 但是还要替换ibdata1文件(几乎不可行)
  • Myisam: 直接将三个文件放到对应的数据库下即可(可以)

文件备份: 数据量很大

二、单表数据备份

单表数据备份: 只能一次针对一张表进行备份, 只能备份数据(结构不行)

备份

从表里面将数据按照规则取出来, 存储到外部文件(outfile)中

基本语法: 前提是外部文件不能存在(必须是自己创建)

select 字段列表/* into outfile 文件路径 from 表名 [where条件];

以上备份方式都是按照默认的方式进行处理: 可以自动选择处理方式

select 字段列表/* into outfile 文件路径 [字段处理] [行处理] from 表名 [where条件];

字段处理: fields

  • Terminated by: 以什么结尾, 默认是” ”
  • Enclosed by: 以什么进行包裹, 默认是””, 没有包裹
  • Escaped by:特殊字符用什么方式转义, 默认是”\”

行处理: lines

  • Starting by: 每行以什么开头,默认是””
  • Terminated by: 行以什么结尾, 默认是” ”

还原

还原: 从文件中将数据取出塞到表里面

load data infile 文件路径 into table 表名[(字段列表)] [字段处理] [行处理];

三、SQL备份

SQL备份: 将数据表以及数据都通过sql语句进行备份: 以后不管表存不存在都可以进行还原.

SQL备份不是通过mysql客户端内部执行SQL指令: 通过mysqldump.exe备份客户端

备份

mysqldump.exe 连接认证(hPup) 数据库 [数据表1 数据表2...] > 外部备份文件所在路径(.sql)

单表备份

mysqldump.exe -hlocalhost -P3306 -uroot -p123 teach student > d:/server/student.sql

多表备份: 表与表之间使用空格分隔

mysqldump.exe -hlocalhost -P3306 -uroot -p123 teach student class > d:/server/student_class.sql

整库备份: 指定数据库名字即可

mysqldump.exe -hlocalhost -P3306 -uroot -p123 teach > d:/server/teach.sql

还原

可以将备份的SQL语句复制全部,进入到mysql数据库之后执行即可.

还原操作1: 使用mysql客户端进行还原

Mysql -hPup 数据库 < sql备份文件

mysql.exe -hlocalhost -P3306 -uroot -p123 teach < d:/server/student_class.sql

还原操作2: 通过SQL指令实现

source sql文件;

以上几种方式备份都比较浪费空间(尤其是SQL备份)

四、增量备份

只对改变的东西进行备份: 是针对mysql的系统日志进行备份,指定备份的起始点到终点

数据备份: 尽量找一个用户访问量相当少的时候进行备份

原文地址:https://www.cnblogs.com/chenjiacheng/p/6522313.html