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

作者:维C果糖 时间:2024-01-25 06:03:33 

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

基础概念:

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

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

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

防止数据丢失;

保护数据记录。

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

SQL 备份

SQL 备份,备份的是 SQL 语句。在进行 SQL 备份的时候,系统会对表结构以及数据进行处理,变成相应的 SQL 语句,然后执行备份。在还原的时候,只要执行备份的 SQL 语句即可,此种备份方式主要是针对表结构。

不过,MySQL 并没有提供 SQL 备份的指令,如果我们想要进行 SQL 备份,则需要利用 MySQL 提供的软件mysqldump.exe,而且mysqldump.exe也是一种客户端,因此在操作服务器的时候,必须进行认证。

基本语法:mysqldump.exe -hPup + 数据库名字 + [表名1 + [表名2]] > 备份文件目录

其中,-hPup分别表示

h:IP 或者localhost;

P:端口号;

u:用户名;

p:密码。

由于mysqldump.exe也是客户端,因此想执行上述命令,我们需要先退出 MySQL 客户端,然后在命令行窗口执行如下命令:

mysqldump.exe -uroot -pbin.guo test class > D:/CoderLife/testMySQL/classSQL.sql

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

如上图所示,虽然mysqldump给出了警告(在命令行中输入密码是不安全的),但是我们输入的命令已经成功执行啦!在这里,如果执行上述命令不成功的话,很有可能是我们没有配置环境变量的问题。

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

如上图所示,在testMySQL目录下,已经生产了对表class的 SQL 备份,至于 SQL 备份的内容到底是什么,我们可以打开classSQL.sql文件进行查看:

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

如上图所示,通过 SQL 备份的文件,包含了各种 SQL 语句,如创建表的语句以及插入数据的语句等等。

此外,在上面给出的执行 SQL 备份的基本语法中,我们可以看到表名都用[]括了起来,这表示可选项,如果不输入表名,则默认备份整个数据库。执行过程和上面一样,因此我们就不予演示啦!

接下来,我们演示通过 SQL 备份的文件还原数据,有两种方式:

方式 1:使用mysql.exe客户端还原数据

基本语法mysql.exe/mysql -hPup 数据库名称 + 数据库名字 + [表名1 + [表名2]] < 备份文件目录

在命令行窗口执行如下命令,进行测试:


-- 登录 MySQL 客户端
mysql -uroot -p

-- 输入密码,切换数据库
use test;

-- 删除表 class 中的数据
delete from class;

-- 退出数据库
\q

-- 通过 SQL 备份的文件还原数据
mysql -uroot -pbin.guo test < D:/CoderLife/testMySQL/classSQL.sql

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

如上图所示,上述命令全部执行成功。下面,我们检查还原结果,

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

如上图所示,显然表class的数据在删除之后,我们通过 SQL 备份的文件还原了数据。

方式 2:使用 SQL 命令还原数据

基本语法source + 备份文件目录;

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


-- 查看表 class 数据
select * from class;

-- 删除表 class 数据
delete from class;

-- 查看表 class 数据
select * from class;

-- 通过 SQL 备份的文件还原数据
source D:/CoderLife/testMySQL/classSQL.sql;

-- 查看表 class 数据
select * from class;

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

如上图所示,显然表class的数据在删除之后,我们通过 SQL 备份的文件利用第二种方式还原了数据。

通过上面的学习及测试,我们可以知道 SQL 备份的优缺点:

优点:可以备份表结构;缺点:增加额外的 SQL 命令,会浪费磁盘空间。

增量备份

增量备份,不是针对数据或者 SQL 进行备份,而是针对 MySQL 服务器的日志进行备份,其日志内容包括了我们对数据库的各种操作的历史记录,如增删改查等。此外,增量备份是指定时间段进行备份,因此备份的数据一般不会出现重复的情况,常用于大型项目的数据备份。在此,我们就不详细的进行介绍了,至于这部分的内容,以后会单独写一篇关于如何进行增量备份的博文。

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

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

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

猜你喜欢

  • 百万级asp分页存储过程代码(ver2.0)

    2007-12-17 13:13:00
  • 使用cmd命令行窗口操作SqlServer的方法

    2012-07-21 14:24:06
  • 在Pycharm中安装Pandas库方法(简单易懂)

    2023-07-21 19:26:28
  • Python如何使用opencv进行手势识别详解

    2021-11-06 07:12:23
  • MySQL两种表存储结构MyISAM和InnoDB的性能比较测试

    2024-01-28 02:35:55
  • Sklearn调优之网格搜索与随机搜索原理详细分析

    2022-05-11 10:47:12
  • Python多进程模式实现多核CPU并行计算

    2022-12-01 21:26:20
  • python中使用urllib2伪造HTTP报头的2个方法

    2022-10-19 07:05:06
  • python的多重继承的理解

    2021-04-27 16:54:21
  • 过期软件破解办法实例详解

    2024-05-02 17:38:03
  • 基于vue-resource jsonp跨域问题的解决方法

    2023-07-02 16:33:44
  • python变量作用域与列表入门详解

    2022-09-05 05:58:27
  • Python数据类型及常用方法

    2022-09-22 08:09:19
  • 基于go微服务效率工具goctl深度解析

    2023-07-12 03:57:13
  • 解读ASP.NET 5 & MVC6系列教程(6):Middleware详解

    2023-07-23 22:27:34
  • Python中的list与tuple集合区别解析

    2023-01-13 11:05:23
  • Go语言生成随机数的方法

    2023-08-28 20:11:10
  • MySQL向表中添加列方法实例

    2024-01-20 19:08:37
  • python计算auc指标实例

    2021-12-21 12:10:03
  • 让Django支持Sql Server作后端数据库的方法

    2024-01-25 13:58:56
  • asp之家 网络编程 m.aspxhome.com