MYSQL常用三种备份方式

时间秒杀一切 提交于 2019-12-05 19:38:58

MYSQL备份:

一:单表数据备份:
每次只能备份一张表,只能备份数据,不能备份表结构。
通常的应用:将表中的数据进行导出到文件。
备份:从表中选出一部分数据保存到外部的文件。
语法:(前提:外部文件不存在)
    SELECT */字段列表 INTO OUTFILE 文件所在路径 FROM 数据源;

高级备份语法:
    自己制定字段和行的处理方式。
字段处理FIELDS:
    ENCLOSED BY : 字段使用什么内容包裹,默认是空字符串''。
    TERMINATED BY : 字段以什么结束,默认是tab键'\t'
行处理LIENS:
    STARTING BY : 每行以什么开始,默认是''空字符串
    TERMINATED BY : 每行以什么结束,默认是换行符'\r\n'

SELECT */字段列表 INTO OUTFILE 文件所在路径 
FIELDS
    ...
LINES
    ...
FROM 数据源;
示例:
SELECT osd.order_no,
       osd.stu_code,
       osd.stu_name,
       osd.tm_code,
       osd.tm_name
INTO OUTFILE 'E:/osdTemp.txt'
FIELDS ENCLOSED BY ''
TERMINATED BY '\t'
LINES STARTING BY ''
TERMINATED BY '\r\n'
FROM order_stu_detail osd
WHERE osd.is_delete = 0;


单表数据还原:
    将一个外部保存的数据恢复到表中(如果表不存在,那么SORRY)
LOAD DATA INFILE 文件路径 INTO TABLE 表名
FIELDS
    ...
LINES
    ...;

示例:
LOAD DATA INFILE 'E:/osdTemp.txt' INTO TABLE test_t
FIELDS ENCLOSED BY ''
TERMINATED BY '\t'
LINES STARTING BY ''
TERMINATED BY '\r\n';

二:SQL备份:
备份的是SQL语句,系统就会对表结构以及数据进行处理,
编程对应的SQL语句,然后进行备份,还原的时候只要执行
SQL指令就可以了。

MYSQL本身没有提供备份的指令。
需要利用MYSQL提供的备份软件:MYSQLDUMP.EXE指令

MYSQLDUMP.EXE也是一种客户端,需要操作服务器,必须进行
连接认证。

语法:·
MYSQLDUMP/MYSQLDUMP.EXE -H ip -P 端口 -U 用户 -P 密码
数据库名称 [数据表1][数据表2]...[数据表n]
> 文件所在路径

整个数据库备份:
MYSQLDUMP/MYSQLDUMP.EXE -H ip -P 端口 -U 用户 -P 密码
数据库名称
> 文件所在路径

SQL还原:
两种方式:
1.MYSQL客户端还原:
MYSQL/MYSQL.EXE -H ip -P 端口 -U 用户 -P 密码 数据库名称 < 备份文件路径

2.使用SQL指令:SOURCE
语法:SOURCE 文件所在路径;

SQL备份的以优缺点:
1.优点:可以备份表、库结构。
2.缺点:会浪费空间(增加额外的SQL指令)。

三:增量备份:
不是针对数据或者SQL指令进行备份,
是针对MYSQL服务器的日志文件进行备份。

增量备份:指定时间段开始备份,备份数据不会重复,
而且所有的操作都会备份。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!