关闭

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

标签: mysql数据备份还原InnoDBMyISAM
1237人阅读 评论(2) 收藏 举报
分类:

温馨提示:本系列博文已经同步到 GitHub,地址为「mysql-tutorial」,欢迎感兴趣的童鞋StarFork,纠错。

数据备份与还原

基础概念:

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

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

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

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

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

数据表备份

数据表备份,不需要通过 SQL 来备份,我们可以直接进入到数据库文件夹复制对应的表结构以及数据;在需要还原数据的时候,直接将备份(复制)的内容放回去即可。

不过想要进行数据表备份是有前提条件的,因为不同的存储引擎之间是有区别的。

对于存储引擎,MySQL 主要使用两种,分别为:InnoDBMyisam,两者均免费。在这里,咱们可以顺便科普一下存储引擎的知识:

特点 Myisam InnoDB BDB Memory Archive
批量插入的速度 非常高
事务安全 —— 支持 支持 —— ——
全文索引 支持 5.5版本支持 —— —— ——
锁机制 表锁 行锁 页锁 表锁 行锁
存储限制 没有 64TB 没有 没有
B树索引 支持 支持 支持 支持 ——
哈希索引 —— 支持 —— 支持 ——
集群索引 —— 支持 —— —— ——
数据缓存 —— 支持 —— 支持 ——
索引缓存 支持 支持 —— 支持 ——
数据可压缩 支持 —— —— —— 支持
空间使用 N/A 非常低
内存使用 中等
外键支持 —— 支持 —— —— ——

其中,Myisam 和 InnoDB 的数据存储方法也有所区别:

  • Myisam:表、数据和索引全部单独分开存储;
  • InnoDB:只有表结构,数据全部存储到ibd文件中。

执行如下 SQL 语句,测试 Myisam 的数据存储方式:

-- 创建 Myisam 表
create table my_myisam(
    id int
)charset utf8 engine = myisam;

-- 显示表结构
show create table my_myisam;

-- 插入数据
insert into my_myisam values(1),(2),(3);

-- 显示数据
select * from my_myisam;

1

如上图所示,我们创建了名为my_myisam,存储引擎为 Myisam 的数据表。为了验证 Myisam 的存储特性,我们可以到data文件夹查看具体的数据存储情况:

2

如上图所示,我们仅仅创建了一个表my_myisam,但是 Myisam 对于会生成三个存储文件,分别为:

  • my_myisam.frm:存储表的结构;
  • my_myisam.MYD:存储表的数据;
  • my_myisam.MYI:存储表的索引。

现在,我们将这三个文件复制到testoo数据库(至于如何找到 MySQL 数据文件的存储位置,可以参考详述查看 MySQL 数据文件存储位置的方法):

3

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

-- 切换数据库
use testoo;

-- 查看 testoo 数据库中的表
show tables;

-- 查看表 my_myisam
select * from my_myisam;

4

如上图所示,显然我们已经通过复制文件的方式,完成了数据表的备份工作。

在这里,有一点需要我们注意,那就是:我们可以将通过 InnoDB 存储引擎产生的.frm.idb文件复制到另一个数据库,也可以通过show tables命令查看复制过来的表名称,但是却无法获得数据

5

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

-- 查看 testoo 数据库中的表
show tables;

-- 查看表 my_class
select * from my_class;

6

通过以上测试,显然数据表备份这种备份方式更适用于 Myisam 存储引擎,而且备份的方式也很简单,直接复制 Myisam 存储引擎产生的.frm.MYD.MYI三个存储文件到新的数据库即可。


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


———— ☆☆☆ —— 返回 -> 史上最简单的 MySQL 教程 <- 目录 —— ☆☆☆ ————

1
2
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

MySQL详解(20)-----------数据库备份和还原

数据备份: 使用mysqldump命令备份 mysqldump命令可以讲数据库中的数据备份成一个文本文件。表结果和表中的数据将存储在生成的文本中。mysqldump的工作原理很简单。他先查出需要备...
  • u011225629
  • u011225629
  • 2015-07-07 10:21
  • 5066

mysql数据的备份还原三种方法

MySQL的备份和恢复: 为什么要对数据做备份?        数据备份主要是用于灾难恢复和测试要求,灾难恢复指硬件故障,软件故障,自然灾害,黑客攻击以及误操作; 备份分为以下几类:...
  • dingjixian
  • dingjixian
  • 2014-09-16 03:34
  • 2554

mysql CMD命令备份和还原数据库

如果要备份和还原数据库, 需要用到 mysql安装目录下bin目录中 的其他的一些命令了 . 备份使用 mysqldump 还原使用 mysql 数据的备份 : 使用mysql...
  • liu911025
  • liu911025
  • 2017-07-02 16:27
  • 669

使用navicat备份和还原mysql数据库

msql是常用的开源数据库,navicat是针对mysql的一个数据库管理工具,提供mysql的各种可视化操作。使用简单,功能强大。本文介绍如何使用navicat进行mysql数据库的备份和还原。 ...
  • luyaran
  • luyaran
  • 2016-12-23 08:49
  • 941

Navicat Premium实现mysql数据库备份 还原

网上有很多类似数据库备份还原的资料,但是大多不是纯命令操作不够实用,对于初学者来说很难看懂不易操作,这里我详细给大家介绍下基于Navicat Premium数据库工具的数据库的备份和还原。 首先点击文...
  • zhige_j
  • zhige_j
  • 2015-11-13 14:01
  • 6491

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

数据备份与还原基础概念: 备份,将当前已有的数据或记录另存一份; 还原,将数据恢复到备份时的状态。 为什么要进行数据的备份与还原? 防止数据丢失; 保护数据记录。 数据备份与还原的方式有很多种,具体可...
  • qq_35246620
  • qq_35246620
  • 2017-10-01 16:26
  • 1453

mysql dump备份方式 mysql还原操作练习

环境:centos 6.5  mysql:mysql 5.1.65 6.1.73  该命令适用于 5.6.25。 备份:mysqldump 备份MySQL数据库的命令 mysqldum...
  • u010098331
  • u010098331
  • 2016-03-15 14:24
  • 7447

MySQL的备份与还原以及常用数据库查看命令

MySQL命令行导出数据库: 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd C:\Program Files\MySQL\MySQL Serv...
  • smartsmile2012
  • smartsmile2012
  • 2014-08-05 16:06
  • 3142

Java备份和还原MySQL数据库

网络上有很多关于Java程序中备份和还原
  • zhangyihui1986
  • zhangyihui1986
  • 2014-09-23 11:57
  • 4269

win下mysql物理备份恢复 适用与mysql 恢复

查询mysql 安装目录下my.ini 文件 首先停止源数据库服务。然后拷贝data目录中对应数据库名称的目录(mydb),其中.frm文件为数据库表定义文件。 ...
  • weixin_37288522
  • weixin_37288522
  • 2017-05-03 21:37
  • 677
    个人资料
    • 访问:831873次
    • 积分:11994
    • 等级:
    • 排名:第1448名
    • 原创:258篇
    • 转载:85篇
    • 译文:11篇
    • 评论:899条
    博主的 GitHub 账号
    GitHub : Charies Gavin

        鉴于 CSDN 糟糕的用户体验,博主会将一些优质的文章迁移到 Charies Gavin's Blog  欢迎大家在 GitHub 上 Follow 博主,以及 Fork、Star、Watch 博主的项目。


      青春不老 奋斗不止


      好学若饥虚心若愚
    博客专栏