史上最简单的MySQL数据备份与还原教程(中)(三十六)

作者:维C果糖 时间:2024-01-24 08:40:56 

数据备份与还原第二篇,具体如下

基础概念:

备份,将当前已有的数据或记录另存一份;

还原,将数据恢复到备份时的状态。

为什么要进行数据的备份与还原?

防止数据丢失;保护数据记录。

数据备份与还原的方式有很多种,具体可以分为:数据表备份、单表数据备份、SQL备份和增量备份。

单表数据备份

单表数据备份,每次只能备份一张表,而且只能备份数据,不能备份表结构。

通常的使用场景为:将表中的数据导出到文件。

备份方法:从表中选出一部分数据保存到外部的文件中,

select */字段列表 + into outfile + '文件存储路径' + from 数据源;

在这里,使用单表数据备份有一个前提,那就是:导出的外部文件不存在,即文件存储路径下的文件不存在

执行如下 SQL 语句,进行测试:


-- 单表数据备份
select * into outfile 'D:/CoderLife/testMySQL/class.txt' from class;

史上最简单的MySQL数据备份与还原教程(中)(三十六)

如上图所示,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表中的数据导出到指定位置,我们可以到该路径下进行确认:

史上最简单的MySQL数据备份与还原教程(中)(三十六)

如上图所示,显然我们已经将class表中的数据导出到本地啦!不过在这里,有一点需要我们特别注意,那就是:对于从数据库导出的文件,我们最好用EditPlus等编辑工具打开,防止乱码

此外,对于上述用于导出表中数据的 SQL 语法,其实我们可以颠倒书写顺序,也没有问题,例如:

select */字段列表 + from 数据源 + into outfile + '文件存储路径';

执行如下 SQL 语句,进行测试:


-- 单表数据备份
select * from class into outfile 'D:/CoderLife/testMySQL/class2.txt';

史上最简单的MySQL数据备份与还原教程(中)(三十六)

接下来,我们学习一些用于单表数据备份的高级操作,即自己指定字段和行的处理方式

基本语法: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 ;

史上最简单的MySQL数据备份与还原教程(中)(三十六)

如上图所示,显然导出文件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;

史上最简单的MySQL数据备份与还原教程(中)(三十六)

如上图所示,显然在我们删除表class中的数据之后,还原数据成功。

温馨提示:符号[]括起来的内容,表示可选项;符号+,则表示连接的意思。

来源:http://blog.csdn.net/qq_35246620/article/details/78147839

标签:MySQL,备份,还原
0
投稿

猜你喜欢

  • Python中的取模运算方法

    2023-11-10 04:39:56
  • mysql时间相减如何获取秒值

    2024-01-19 17:04:10
  • centos 下面安装python2.7 +pip +mysqld

    2024-01-22 15:10:43
  • opencv-python+yolov3实现目标检测

    2022-01-18 06:45:17
  • 基于Python编写一个简单的端口扫描器

    2021-09-19 09:21:22
  • 如何使用VSCode愉快的写Python于调试配置步骤

    2021-11-21 06:16:12
  • mac 安装python网络请求包requests方法

    2023-08-05 09:01:41
  • python 实现UTC时间加减的方法

    2023-08-06 15:35:42
  • SQLServe 重复行删除方法

    2024-01-26 18:39:24
  • Python最长回文子串问题

    2023-10-02 16:13:21
  • JS模仿手机端九宫格登录功能实现代码

    2024-04-17 10:33:21
  • 详述如何提高MySQL中数据装载效率

    2009-10-26 10:27:00
  • Golang中time.After的使用理解与释放问题

    2024-04-25 13:20:08
  • Python+SimpleRNN实现股票预测详解

    2022-12-04 13:08:26
  • Python多进程通信Queue、Pipe、Value、Array实例

    2023-04-08 03:25:55
  • Python八皇后问题解答过程详解

    2021-09-09 18:06:17
  • 关于交互设计在QQ秀赠送流程中的优化

    2009-06-11 12:30:00
  • python中getaddrinfo()基本用法实例分析

    2023-03-15 12:17:34
  • python读取Kafka实例

    2023-10-22 17:22:58
  • Golang截取字符串方法示例讲解及对比

    2024-05-09 14:57:29
  • asp之家 网络编程 m.aspxhome.com