史上最简单的MySQL数据备份与还原教程(中)(三十六)
作者:维C果糖 发布时间:2024-01-24 08:40:56
数据备份与还原第二篇,具体如下
基础概念:
备份,将当前已有的数据或记录另存一份;
还原,将数据恢复到备份时的状态。
为什么要进行数据的备份与还原?
防止数据丢失;保护数据记录。
数据备份与还原的方式有很多种,具体可以分为:数据表备份、单表数据备份、SQL备份和增量备份。
单表数据备份
单表数据备份,每次只能备份一张表,而且只能备份数据,不能备份表结构。
通常的使用场景为:将表中的数据导出到文件。
备份方法:从表中选出一部分数据保存到外部的文件中,
select */字段列表 + into outfile + '文件存储路径' + from 数据源;
在这里,使用单表数据备份有一个前提,那就是:导出的外部文件不存在,即文件存储路径下的文件不存在。
执行如下 SQL 语句,进行测试:
-- 单表数据备份
select * into outfile 'D:/CoderLife/testMySQL/class.txt' from class;
如上图所示,SQL 语句已经执行成功。在这里,如果我们遇到:
ERROR 1290 (HY000): The MySQL server is running with the –secure-file-priv option so it cannot execute this statement.
这个错误,可以通过查看「详述 MySQL 导出数据遇到 secure-file-priv 的问题」进行解决。
为了验证是否真的将class表中的数据导出到指定位置,我们可以到该路径下进行确认:
如上图所示,显然我们已经将class表中的数据导出到本地啦!不过在这里,有一点需要我们特别注意,那就是:对于从数据库导出的文件,我们最好用EditPlus等编辑工具打开,防止乱码。
此外,对于上述用于导出表中数据的 SQL 语法,其实我们可以颠倒书写顺序,也没有问题,例如:
select */字段列表 + from 数据源 + into outfile + '文件存储路径';
执行如下 SQL 语句,进行测试:
-- 单表数据备份
select * from class into outfile 'D:/CoderLife/testMySQL/class2.txt';
接下来,我们学习一些用于单表数据备份的高级操作,即自己指定字段和行的处理方式。
基本语法:select */字段列表 + into outfile + '文件存储路径' + fields + 字段处理 + lines + 行处理 + from 数据源;
字段处理:
enclosed by:指定字段用什么内容包裹,默认是,空字符串;
terminated by:指定字段以什么结束,默认是\t,Tab键;
escaped by:指定特殊符号用什么方式处理,默认是\\,反斜线转义。
行处理:
starting by:指定每行以什么开始,默认是,空字符串;
terminated by:指定每行以什么结束,默认是\r\n,换行符。
执行如下 SQL 语句,进行测试:
-- 指定单表数据备份处理方式
select * into outfile 'D:/CoderLife/testMySQL/class3.txt'
-- 字段处理
fields
enclosed by '"'
terminated by '|'
lines
starting by 'START:'
from class ;
如上图所示,显然导出文件class3.txt按照我们指定的格式进行输出啦!在前面,我们已经测试了各种单表数据备份的方式,现在我们删除数据,并尝试还原数据,即将保持在外部的数据重新恢复到数据表中。But,由于单表数据备份进能备份数据,因此如果表结构不存在,则不能进行还原。
基本语法:load data infile + '文件存储路径' + into table + 表名 + [字段列表] + fields + 字段处理 + lines + 行处理;
执行如下 SQL 语句,进行测试:
-- 删除表 class 中的数据
delete from class;
-- 查看表 class 中的数据
select * from class;
-- 还原表 class 中的数据
load data infile 'D:/CoderLife/testMySQL/class3.txt'
into table class
-- 字段处理
fields
enclosed by '"'
terminated by '|'
lines
starting by 'START:';
-- 查看表 class 中的数据
select * from class;
如上图所示,显然在我们删除表class中的数据之后,还原数据成功。
温馨提示:符号[]括起来的内容,表示可选项;符号+,则表示连接的意思。
来源:http://blog.csdn.net/qq_35246620/article/details/78147839
猜你喜欢
- 前言大家都知道,Python自带的datetime库提供了将datetime转为ISO 8610格式的函数,但是对于时间间隔(inteval
- 一、爬虫的流程开始学习爬虫,我们必须了解爬虫的流程框架。在我看来爬虫的流程大概就是三步,即不论我们爬取的是什么数据,总是可以把爬虫的流程归纳
- 1、前不久,friendfeed.com把主导航从上面,移到了右侧。现在,又改到了左侧。2、现在,twitter.com把页签(相当于二级导
- 从最简单的Web浏览器的登录界面开始,登录界面如下:进行Web页面自动化测试,对页面上的元素进行定位和操作是核心。而操作又是以定位为前提的,
- 随着网络技术的不断发展,网络应用已经渗透到人类社会的各个角落。作为网络世界的支撑点的网站,更是人们关注的热点:政府利用网站宣传自己的施政纲领
- Python中的中文是个很头痛的问题,Python2和Python3都会出现,而且py2中出现的概率要大些。 有一道面试题: Py
- 名称空间名称空间(namespaces):用于存放名字与内存地址绑定关系的地方,是对栈区的划分作用:名称空间可以使栈区中存放相同的名字,从而
- 经过一轮的项目封闭开发,页面制作的动手能力提高了不少,用AW的话说就是被复杂的东西虐过以后很多问题都变得容易了,的确很有道理。我个人觉得技术
- Python 中文编码Python 文件中如果未指定编码,在执行过程会出现报错:Python中默认的编码格式是 ASCII 格式,在没修改编
- Python(包括其包Numpy)中包含了了许多概率算法,包括基础的随机采样以及许多经典的概率分布生成。我们这个系列介绍几个在机
- python的正则是通过re模块的支持匹配的3个函数match :只从字符串的开始与正则表达式匹配,匹配成功返回matchobject,否则
- 用Dreamweaver制作网页时,如果插入的图片、GIF动画、声音、视频或链接的网页是用中文命名的,在用IE浏览器浏览时可能显示不出来。以
- 我就废话不多说了,还是直接看代码吧!import osimport timeimport mmapfilename = 'test.
- 说到排序,很多人可能第一想到的就是sorted,但是你可能不知道python中其实还有还就中方法哟,并且好多种场景下效率都会比sorted高
- 关于current()函数: 每个数组中都有一个内部的指针指向它“当前的”单元,初始指向插入到数组中的第一个单元。用current()获取。
- 使用os.remove删除文件,总是遇到错误:PermissionError: WinError找了很久没找到什么原因,以为是windows
- Usage example (libtiff wrapper)from libtiff import TIFF# to open a tif
- 导语哈喽哈喽!大家好!我是木木子,又到了每日游戏更新环节!8月30日,对暑假还意犹未尽的孩子们收到了一份“开学大礼”:通知要求,严格限制向未
- 前言文件和目录操作是很常见的功能,这里做个简单的总结,包括注意事项和实际的实现代码,基本日常开发都够用了目录操作判断目录或是文件是否存在os
- 本文实例讲述了Python数据类型之List列表。分享给大家供大家参考,具体如下:list列表1.概述:通过之前的学习,我们知道变量可以存储