MySQL 数据备份与还原

2023-05-16

转载自:https://www.cnblogs.com/kissdodog/p/4174421.html

一、数据备份

  1、使用mysqldump命令备份

  mysqldump命令将数据库中的数据备份成一个文本文件。表的结构和表中的数据将存储在生成的文本文件中。

  mysqldump命令的工作原理很简单。它先查出需要备份的表的结构,再在文本文件中生成一个CREATE语句。然后,将表中的所有记录转换成一条INSERT语句。然后通过这些语句,就能够创建表并插入数据。

  1、备份一个数据库

  mysqldump基本语法:

  mysqldump -u username -p dbname table1 table2 ...-> BackupName.sql

  其中:

  • dbname参数表示数据库的名称;
  • table1和table2参数表示需要备份的表的名称,为空则整个数据库备份;
  • BackupName.sql参数表设计备份文件的名称,文件名前面可以加上一个绝对路径。通常将数据库被分成一个后缀名为sql的文件;

  使用root用户备份test数据库下的person表


mysqldump -u root -p test person > D:\backup.sql  

  

  其生成的脚本如下:

  

  文件的开头会记录MySQL的版本、备份的主机名和数据库名。

  文件中以“--”开头的都是SQL语言的注释,以"/*!40101"等形式开头的是与MySQL有关的注释。40101是MySQL数据库的版本号,如果MySQL的版本比1.11高,则/*!40101和*/之间的内容就被当做SQL命令来执行,如果比4.1.1低就会被当做注释。

  2、备份多个数据库

  语法:


mysqldump -u username -p --databases dbname2 dbname2 > Backup.sql  

  加上了--databases选项,然后后面跟多个数据库


mysqldump -u root -p --databases test mysql > D:\backup.sql  

  3、备份所有数据库

  mysqldump命令备份所有数据库的语法如下:


mysqldump -u username -p -all-databases > BackupName.sql  

  示例:


mysqldump -u -root -p -all-databases > D:\all.sql  

  2、直接复制整个数据库目录

  MySQL有一种非常简单的备份方法,就是将MySQL中的数据库文件直接复制出来。这是最简单,速度最快的方法。

不过在此之前,要先将服务器停止,这样才可以保证在复制期间数据库的数据不会发生变化。如果在复制数据库的过程中还有数据写入,就会造成数据不一致。这种情况在开发环境可以,但是在生产环境中很难允许备份服务器。

  注意:这种方法不适用于InnoDB存储引擎的表,而对于MyISAM存储引擎的表很方便。同时,还原时MySQL的版本最好相同。

  3、使用mysqlhotcopy工具快速备份

  一看名字就知道是热备份。因此,mysqlhotcopy支持不停止MySQL服务器备份。而且,mysqlhotcopy的备份方式比mysqldump快。mysqlhotcopy是一个perl脚本,主要在Linux系统下使用。其使用LOCK TABLES、FLUSH TABLES和cp来进行快速备份。

  原理:先将需要备份的数据库加上一个读锁,然后用FLUSH TABLES将内存中的数据写回到硬盘上的数据库,最后,把需要备份的数据库文件复制到目标目录。

  命令格式如下:


[root@localhost ~]# mysqlhotcopy [option] dbname1 dbname2 backupDir/  
  • dbname:数据库名称;
  • backupDir:备份到哪个文件夹下;

  常用选项:

  • --help:查看mysqlhotcopy帮助;
  • --allowold:如果备份目录下存在相同的备份文件,将旧的备份文件加上_old;
  • --keepold:如果备份目录下存在相同的备份文件,不删除旧的备份文件,而是将旧的文件更名;
  • --flushlog:本次辈分之后,将对数据库的更新记录到日志中;
  • --noindices:只备份数据文件,不备份索引文件;
  • --user=用户名:用来指定用户名,可以用-u代替;
  • --password=密码:用来指定密码,可以用-p代替。使用-p时,密码与-p之间没有空格;
  • --port=端口号:用来指定访问端口,可以用-P代替;
  • --socket=socket文件:用来指定socket文件,可以用-S代替;

  mysqlhotcopy并非mysql自带,需要安装Perl的数据库接口包;下载地址为:http://dev.mysql.com/downloads/dbi.html

  目前,该工具也仅仅能够备份MyISAM类型的表。

二、数据还原

  1、还原使用mysqldump命令备份的数据库的语法如下:

  mysql -u root -p [dbname] < backup.sq

  示例:


mysql -u root -p < C:\backup.sql  

  2、还原直接复制目录的备份

  通过这种方式还原时,必须保证两个MySQL数据库的版本号是相同的。MyISAM类型的表有效,对于InnoDB类型的表不可用,InnoDB表的表空间不能直接复制。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL 数据备份与还原 的相关文章

  • 在 php 和 mysql 中使用 utf8mb4

    我读过 mysql gt 5 5 3 完全支持每个可能的字符 如果您使用编码utf8mb4对于某个表 列http mathiasbynens be notes mysql utf8mb4 http mathiasbynens be note
  • 在 BIRT 中输入参数后更新数据集查询

    在 BIRT 报告设计中传递参数后 如何更改或更新数据集的查询 详细说明 我有一个如下所示的查询 WHERE 该参数标记可以保存不同的值 在用户输入参数后 它看起来像这样 例如 WHERE column name 1 or WHERE co
  • PHP多图像文件上传并存储到文件夹和数据库

    我正在建立一个网站 向夜间狂欢者展示大城市夜总会场所和活动的列表 我正在尝试构建一个后端页面 管理员可以在其中添加俱乐部并输入信息 例如机构名称 位置 相对价格等 当然还有俱乐部的一些图像 每个俱乐部必须至少有一张图像 即主图像 可以有额外
  • ODBC 链接表中突然开始出现写入冲突消息

    我有一个 mySQL 数据库 用于跟踪我们的项目并驱动我们的网站显示其信息 为了方便更新数据库 我设置了一个使用 ODBC 连接 MySQL ODBC 5 1 来编辑数据的访问数据库 过去几个月一直运行良好 没有出现任何问题 然而 昨晚用户
  • 在 LINQ 中执行 FirstOrDefault 的替代方法

    我有一个成员资格表 用于记录用户是否是列表的成员 当用户的成员资格发生更新时 会写入新记录 并且先前的记录保持原样 从而可以维护其成员资格的历史记录 要获取用户的会员身份 需要选择他们最近的条目 下面是一些用户列表成员资格数据的示例 目的是
  • dayname(curdate()) 不适用于 codeigniter php

    此 sql 在 phpmyadmin 中有效 但在 codeigniter php 中无效 function getProgramsHomepage data array this gt db gt select p name p star
  • 使用 Sequelize (NodeJS) 代替 * 指定特定字段

    好吧 我在 NodeJS 中有一个项目 我正在其中使用 Sequelize 来实现 MySQL ORM 这件事工作得非常好 但是我试图弄清楚是否有一种方法可以指定在查询的基础上返回哪些字段 或者是否有一种方法可以在某处执行 query 例如
  • MySQL InnoDB引擎是否对只读事务运行任何性能优化

    根据参考文档 只读事务标志可能会提示存储引擎运行一些优化 设置会话事务只读 如果事务访问模式设置为 READ ONLY 则对表进行更改 被禁止 这可能使存储引擎能够提高性能 不允许写入时可能进行的改进 InnoDB引擎是否对只读事务运行这样
  • Magento - 无法重新索引产品价格 - 外键约束失败

    我最近刚刚将我的 magento 商店从 1 4 2 升级到 1 7 0 2 升级进行得很顺利 但是当我尝试在升级后重新索引数据时 产品价格失败了 我尝试过使用php shell indexer php reindexall来自 SSH 它
  • 当我尝试计算 mysqli 结果时,为什么会收到警告?

    下面的代码会导致此警告 警告 count 参数必须是数组或实现 Countable 的对象 为什么要这样做 如何防止出现警告 if isset GET edit sonum GET edit update true result mysql
  • 如何使用Python3.4在tornado中进行异步mysql操作?

    我现在使用Python3 4 我想在Tornado中使用异步mysql客户端 我已经发现torndb https github com bdarnell torndb但在阅读其源代码后 我认为它无法进行异步mysql操作 因为它只是封装了M
  • MySQL - 查找接近的匹配项

    MySQL 有没有办法在文本字段中找到紧密匹配的内容 说找到 email protected cdn cgi l email protection当搜索时 email protected cdn cgi l email protection
  • java.lang.NoSuchMethodError:没有虚拟方法 setTag(Ljava/lang/Object;)

    我刚刚完成使用登录和注册屏幕与齐射的代码 但在模拟器中运行时我收到此错误 java lang NoSuchMethodError No virtual method setTag Ljava lang Object Lcom android
  • mysql时间比较

    我有 job start 和 job end 时间 timediff 会给我时间差 现在我想看看这项工作是否花费了超过 2 小时 30 分钟 我如何比较它 如果我这样做 我会收到错误 timediff job start job end g
  • 如何修复“未知变量'sql-mode = ANSI'”?

    使用 MySQL 5 5 27 在 my cnf 中我有 mysql sql mode ANSI 启动 mysql 控制台后我得到 unknown variable sql mode TRADITIONAL MySQL 文档服务器 SQL
  • 无法加载身份验证插件“caching_sha2_password”

    我正在将 MySQL 8 0 与 MySQL Workbench 连接并收到以下错误 无法加载身份验证插件 caching sha2 password dlopen usr local mysql lib plugin caching sh
  • MySQL 连接器 C++ 64 位在 Visual Studio 2012 中从源代码构建

    我正在尝试建立mySQL 连接器 C 从源头在视觉工作室2012为了64 bit建筑学 我知道这取决于一些boost头文件和C 连接器 跑步CMake生成一个项目文件 但该项目文件无法编译 因为有一大堆非常令人困惑的错误 这些错误可能与包含
  • 如何关闭整个数据库的区分大小写

    我创建了一个包含许多脚本和许多存储过程的数据库 在这个数据库中 我们没有注意担心区分大小写 因为它对于我的本地开发计算机来说是关闭的 综上所述 我试图弄清楚如何使以下两条语句返回相同的结果 SELECT FROM companies SEL
  • 错误 1305 (42000):保存点...不存在

    我的 MYSQL 数据库中有这个 SQL 存储过程为空 所以我猜没有隐式提交 DROP PROCEDURE IF EXISTS doOrder DELIMITER CREATE PROCEDURE doOrder IN orderUUID
  • 如何统计订单总价?

    我有这些表 Orders id status user id address id 1 await 1 1 products id name price quantity 1 test1 100 5 2 test2 50 5 order p

随机推荐

  • 姿态篇:四.非线性最小二乘与飞控传感器校准

    深入浅出多旋翼飞控开发 姿态篇 四 非线性最小二乘与飞控传感器校准 Github 作者 xff1a Sky 前言 搞好了传感器 xff0c 那意味着飞控已经完成了一半 不用猜了 xff0c 这句话正是鄙人说的 飞控的软硬件相关工作 xff0
  • 概述篇:二.多旋翼飞控技术综述

    深入浅出多旋翼飞控开发 概述篇 二 多旋翼飞控技术综述 Github 作者 xff1a Sky 要学习多旋翼飞控 xff0c 第一步得先弄清楚飞控的整体框架和大致工作流程 xff0c 对飞控有了一个整体的认识之后 xff0c 我们再逐步去学
  • 【深入浅出多旋翼飞控开发】系列教程

    针对飞控初学者编写的一系列教程 xff0c 可配合开源飞控项目 xff1a 天穹飞控一起学习 xff0c 效率更高 目录 概述篇 一 多旋翼飞控发展史 二 多旋翼飞控技术综述 预备篇 一 元器件选型及飞控电路设计 二 飞控代码下载与编译 三
  • Cortex-M4和Cortex-M7中的SIMD指令

    SIMD指令简介 单指令多数据流 xff0c 即SIMD xff08 Single Instruction xff0c Multiple Data xff09 指一类能够在单个指令周期内同时处理多个数据元素的指令集 xff0c 利用的是数据
  • 天穹地面站——专为飞控研发而生

    一 简介 天穹地面站是本人为开源飞控项目 天穹飞控专门开发的一个上位机软件 xff0c 针对飞控的研发与调试而设计 一直以来 xff0c 我都为没有一个适合飞控开发的上位机软件而发愁 xff0c 国内大部分爱好者们所使用的相关软件 xff0
  • 预备篇:二.飞控代码下载与编译

    深入浅出多旋翼飞控开发 预备篇 二 飞控代码下载与编译 开源飞控交流 xff1a 562983648 Github 因论坛关闭 xff0c 迁移该文章至博客 系统环境 xff1a WIN7 WIN8 WIN10 编译工具 xff1a Kei
  • 预备篇:一.元器件选型及飞控电路设计

    深入浅出多旋翼飞控开发 预备篇 一 元器件选型及飞控电路设计 Github 要让飞控程序跑起来 xff0c 首先我们得要有一个硬件实体 xff0c 也就是我们的飞控板 说实话 xff0c 飞控电路可以很简单 xff0c 单纯由几个简单的元器
  • 使用VSCode打造APM飞控的编译+烧录+调试一体的终极开发环境

    日期 xff1a 2019 05 08 前言 APM xff08 Ardupilot xff09 和PX4是当今世界上最为流行和活跃的两大开源飞控软件项目 xff0c 它们均在Linux下基于gcc编译工具链开发 xff0c 对于那些习惯与
  • “做好大数据测试,我是认真的!”

    阿里妹导读 xff1a 大数据已然是当下的重要课题 xff0c 大大小小的企业在重视大数据的同时 xff0c 也渐渐重视大数据质量的问题 阿里巴巴测试开发专家小郅 xff0c 今天会分享他对数据测试的系统性思考 文章内容架构清晰 xff0c
  • Docker(一)虚拟机安装Docker

    一 安装Docker 官方镜像 Docker现在的版本分为Docker CE 社区版 和Docker EE 企业版 由于历史版本的原因 在我们安装现在版本Docker的时候 如果之前的Linux已经安装了Docker 那么最好先删除了之后再
  • linux Ubuntu 连不上新Putty 连接出错解决办法

    1 首先检验linux系统是否安装了ssh server 在终端中输入 xff1a ssh localhost 若出现 xff1a ssh connect to host localhost port 22 Connection refus
  • git子仓库管理使用(添加子仓库,删除子仓库,更新子仓库)

    背景 项目中经常使用别人维护的模块 xff0c 在git中使用子模块的功能能够大大提高开发效率 使用子模块后 xff0c 不必负责子模块的维护 xff0c 只需要在必要的时候同步更新子模块即可 例如一个使用了子仓库的代码库 xff0c 如何
  • 串口发送数据,只接收到00的原因之一

    1 环境 xff1a STM32F103RCT6 KEIL 5 2 现象 xff1a 不管我发送任何类型的数据 xff0c 在串口助手上显示接收到的都是00 xff0c 我头很大 xff0c 去网上找了别人的代码对比检查 终于 xff0c
  • Eclipse常用技巧总结

    关于eclipse的使用方面 xff0c 其实有些东西都是小技巧的东西 xff0c 知道了后 xff0c 对编程会带来很大的方便 一 老是使用鼠标操作 xff0c 有的功能要点好多次鼠标 xff0c eclipse都有哪些热键呢 xff1f
  • 新学期flag-适合每个人的专业课

    在果壳上看了各学科入门书籍推荐这个帖子 xff0c 决定自己好好扩展一下自己的眼界 xff0c 开启一个伟大的阅读计划 xff1a 1 师从天才 作者 美 罗伯特 卡尼格尔 出版社 上海科技教育出版社 评语 sunfield推荐 xff08
  • Android指纹识别,看这一篇就够了

    在Android6 0 xff08 Api23 xff09 的时候 xff0c Android系统加入了指纹识别的api接口 xff0c 即FingerprintManager xff0c 定义了最基础的指纹识别接口 不过 xff0c 在A
  • 集成学习——机器学习(周志华)

    集成学习 目录 xff1a 个体和集成BoostingBagging与随机森林 Bagging随机森林 综合策略 平均法投票法学习法 多样性 误差 分歧分解多样性度量多样性增强 内容 xff1a 个体和集成 集成学习是通过构建并结合多个学习
  • 15-[LVI-SAM]分析总结

    2021SC 64 SDUSC LVI SAM分析总结 这是我的LVI SAM代码分析的最后一篇 在这一篇 xff0c 我会做一个总结 xff0c 对我前面的Blog做一个综述 xff0c 分享在分析的过程中 xff0c 我的收获 文章目录
  • Java编程思想个人读后感

    今天又拿起了Java编程思想啃了起来 xff0c 前段时间看了二十来章 xff0c 但感觉心静不下来 xff0c 有许多知识没有消化 xff0c 所以昨天又从第一章开始学起 xff0c 这次也不强加自己一天要学一两章 xff0c 也觉得那样
  • MySQL 数据备份与还原

    转载自 xff1a https www cnblogs com kissdodog p 4174421 html 一 数据备份 1 使用mysqldump命令备份 mysqldump命令将数据库中的数据备份成一个文本文件 表的结构和表中的数