目录
MySQL数据备份
逻辑备份与恢复
备份
恢复
完全恢复
不完全恢复
基于时间点
基于位置的恢复
物理备份与恢复
冷备份与恢复
热备份
MyISAM存储引擎
InnoDB存储引擎
表的导入与导出
导出
导入
首页 数据库 mysql教程 MySQL的备份与恢复详解

MySQL的备份与恢复详解

Mar 01, 2017 pm 01:43 PM

MySQL数据备份

在mySQL里面,有逻辑备份和物理备份。逻辑备份最大优点是对于各种存储引擎,都可以使用同样的方法来备份。而物理备份则不同,不同的存储引擎有着不同的备份方法。

逻辑备份与恢复

备份

在MySQL中逻辑备份是使用mysqldump将数据库中的数据备份为一个文本文件,备份的文件可以被查看和编辑。按照备份范围,可以将备份分为以下三种备份。

  • 备份指定的一个数据库或者该数据库中的某些表
    mysqldump [options] 数据库名 [表名] > data.sql

  • 备份指定的多个数据库
    mysqldump  [options] –database > data.sql 数据库1名 数据库2名 数据库3名…

  • 备份所有的数据库
    mysqldump [options] –all-database > data.sql
    解析:[options] 备份时候,需要的权限信息等。mysqldump的选项很多,具体可以通过mysqldump –help来查看。 为了保证数据备份一致性,MySQL存储引擎在北方时候,需要加上-l 参数,表示将所有表加上读锁,在备份期间,所有的表将只能读,而不能写。但是对于InnoDB引擎来说,可以采用–single-transaction。data.sql备份的数据文件
    参数:
    l:代表给所有表加锁
    f:代表生成一个新的日子文件

实例将xxpt数据库中所有表备份到dequan.sql表中。命令如下:
mysqldump -uroot -p xxpt >dequan.sql
这里写图片描述
因为上面我没有指定备份路径,默认情况下,会备份到当前路径,所以备份到D:\wamp\bin\mysql\mysql5.6.17\bin路径下了。

恢复

完全恢复

mysqldump的恢复也很简单,将备份作为输入执行即可。结果如下:
mysql -uroot -p dbname

不完全恢复

不完全恢复包含基于时间点的恢复和基于位置的恢复。时间点与位置是相对应二进制日志(binlog日志)里面的时间点和位置。
这里写图片描述

基于时间点

将设下午4:00到下午5:00之前的数据室错误的,恢复时候,需要跳过。首先我们来看一下binlog日志。如下午4点多更新数据是错误的,恢复时候需要跳过,下午5点多删除数据是正确的,需要保留。
这里写图片描述
1.通过mysql -uroot -p dbname

基于位置的恢复

使用位置恢复时候,我们需要先查看binlog日志文件,确定位置编号,然后使用如下命令进行恢复:
mysqlbinlog D:\wamp\bin\mysql\mysql5.6.17\data\mybinlog.000012 –stop-position=716406|mysql -uroot -p
恢复5点之后的操作
D:\wamp\bin\mysql\mysql5.6.17\data\mybinlog.000012 –start-position=723613|mysql -uroot -p
这里写图片描述

物理备份与恢复

物理备份分为冷备份和热备份。和逻辑备份相比,它的最大优点是备份和恢复的速度快。因为物理备份的原理都是基于文件的cp。

冷备份与恢复

冷备份其实就是将停掉数据库服务,复制数据文件的方法。这种方法对MyISAM和InnoDB都适合。
恢复:首先停掉Mysql服务,在操作系统级别恢复MySQL的数据文件,然后重启Mysql服务,使用Mysqlbinlog工具恢复备份以来的所有binlog。

热备份

在mysql中不同存储引擎的热备份时不相同的。

MyISAM存储引擎

MyISAM存储引擎备份原理就是将要备份的表加读锁,然后在cp数据文件到备份目录。常用方法

  • 方法一:使用mysqlhotcop
    mysqlhotcop db_name [目录]

  • 方法二:手工锁表copy
    首先给数据库中所有表加读锁,然后cp数据。
    锁定所有表flush tables with read lock;
    这里写图片描述

InnoDB存储引擎

正在学习中···

表的导入与导出

导出

  • 使用SELECT …INTO OUTFILE …+[options]命令实现
    关于options参数如下
    这里写图片描述
    默认路径为该数据对应的路径下:
    这里写图片描述
    这里写图片描述

  • 使用mysqldump
    mysqldump -u username -T targetDir dbname tableName[options]
    比如:
    mysqldump -uroot -p -T  D:/wamp/bin/mysql/mysql5.6.17/  xxpt t1  
    生成了两个文件,如下图:
    这里写图片描述
    t1.txt中保存中数据信息,t1.sql文件内容如下

-- MySQL dump 10.13  Distrib 5.6.17, for Win32 (x86)
---- Host: localhost    Database: xxpt
-- ------------------------------------------------------
-- Server version   5.6.17-log
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
---- Table structure for table `t1`--DROP TABLE IF EXISTS `t1`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (  `id1` int(11) NOT NULL DEFAULT '0',  
`id2` int(3) unsigned zerofill NOT NULL DEFAULT '000') ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2016-04-18 19:30:51
登录后复制

导入

方法一:
load data infile
eg:
load data infile ‘D:/wamp/bin/mysql/mysql5.6.17/t1.txt’ into table t1;
这里写图片描述

方法二:使用mysqlinport

 以上就是MySQL的备份与恢复详解的内容,更多相关内容请关注PHP中文网(www.php.cn)!


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1670
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1275
29
C# 教程
1256
24
laravel入门实例 laravel入门实例 Apr 18, 2025 pm 12:45 PM

Laravel 是一款 PHP 框架,用于轻松构建 Web 应用程序。它提供一系列强大的功能,包括:安装: 使用 Composer 全局安装 Laravel CLI,并在项目目录中创建应用程序。路由: 在 routes/web.php 中定义 URL 和处理函数之间的关系。视图: 在 resources/views 中创建视图以呈现应用程序的界面。数据库集成: 提供与 MySQL 等数据库的开箱即用集成,并使用迁移来创建和修改表。模型和控制器: 模型表示数据库实体,控制器处理 HTTP 请求。

MySQL和PhpMyAdmin:核心功能和功能 MySQL和PhpMyAdmin:核心功能和功能 Apr 22, 2025 am 12:12 AM

MySQL和phpMyAdmin是强大的数据库管理工具。1)MySQL用于创建数据库和表、执行DML和SQL查询。2)phpMyAdmin提供直观界面进行数据库管理、表结构管理、数据操作和用户权限管理。

MySQL与其他编程语言:一种比较 MySQL与其他编程语言:一种比较 Apr 19, 2025 am 12:22 AM

MySQL与其他编程语言相比,主要用于存储和管理数据,而其他语言如Python、Java、C 则用于逻辑处理和应用开发。 MySQL以其高性能、可扩展性和跨平台支持着称,适合数据管理需求,而其他语言在各自领域如数据分析、企业应用和系统编程中各有优势。

laravel框架安装方法 laravel框架安装方法 Apr 18, 2025 pm 12:54 PM

文章摘要:本文提供了详细分步说明,指导读者如何轻松安装 Laravel 框架。Laravel 是一个功能强大的 PHP 框架,它 упростил 和加快了 web 应用程序的开发过程。本教程涵盖了从系统要求到配置数据库和设置路由等各个方面的安装过程。通过遵循这些步骤,读者可以快速高效地为他们的 Laravel 项目打下坚实的基础。

在MySQL中解释外键的目的。 在MySQL中解释外键的目的。 Apr 25, 2025 am 12:17 AM

在MySQL中,外键的作用是建立表与表之间的关系,确保数据的一致性和完整性。外键通过引用完整性检查和级联操作维护数据的有效性,使用时需注意性能优化和避免常见错误。

比较和对比Mysql和Mariadb。 比较和对比Mysql和Mariadb。 Apr 26, 2025 am 12:08 AM

MySQL和MariaDB的主要区别在于性能、功能和许可证:1.MySQL由Oracle开发,MariaDB是其分支。2.MariaDB在高负载环境中性能可能更好。3.MariaDB提供了更多的存储引擎和功能。4.MySQL采用双重许可证,MariaDB完全开源。选择时应考虑现有基础设施、性能需求、功能需求和许可证成本。

yi框架用什么软件比较好 yi框架使用软件推荐 yi框架用什么软件比较好 yi框架使用软件推荐 Apr 18, 2025 pm 11:03 PM

文章首段摘要:在选择开发 Yi 框架应用程序的软件时,需要考虑多个因素。虽然原生移动应用程序开发工具(如 XCode 和 Android Studio)可以提供强大的控制和灵活性,但跨平台框架(如 React Native 和 Flutter)凭借其编写一次,即可部署到多个平台的优点而越来越受欢迎。对于刚接触移动开发的开发者,低代码或无代码平台(如 AppSheet 和 Glide)可以快速轻松地构建应用程序。另外,云服务提供商(如 AWS Amplify 和 Firebase)提供了全面的工具

SQL与MySQL:澄清两者之间的关系 SQL与MySQL:澄清两者之间的关系 Apr 24, 2025 am 12:02 AM

SQL是一种用于管理关系数据库的标准语言,而MySQL是一个使用SQL的数据库管理系统。SQL定义了与数据库交互的方式,包括CRUD操作,而MySQL实现了SQL标准并提供了额外的功能,如存储过程和触发器。

See all articles