mysql数据备份与恢复实现方法分析

 更新时间:2020年04月20日 11:47:00   作者:随风行云  
这篇文章主要介绍了mysql数据备份与恢复实现方法,结合实例形式分析了mysql数据备份与恢复常见实现方法与相关操作注意事项,需要的朋友可以参考下

本文实例讲述了mysql数据备份与恢复实现方法。分享给大家供大家参考,具体如下:

本文内容:

  • 复制文件法
  • 利用mysqldump
  • 利用select into outfile
  • 其它(列举但不介绍)

首发日期:2018-04-19


有些时候,在备份之前要先做flush tables ,确保所有数据都被写入到磁盘中。


复制文件法:

  • 对于myisam存储引擎的数据库,它的表结构(.frm)、数据(.myd)和索引(.myi)都单独成文件,可以直接复制这三个文件到备份空间就可以成功备份了。
  • 至于还原,只需要把三个文件复制回某个数据库目录下即可。


利用mysqldump:

适用情况:本质上是把表结构和数据还原成sql语句,所以可以备份表结构

备份:

  • 单表备份:mysqldump -u用户名 -p 数据库名 表名 > 备份文件路径
  • 多表备份:mysqldump -u用户名 -p 数据库名 表名1 [其他表名] > 备份文件路径
  • 单个数据库备份:mysqldump -u用户名 -p 数据库名  > 备份文件路径
  • 多个数据库备份:mysqldump -u用户名 -p --databases  数据库名1 数据库名2 [其他数据库]  > 备份文件路径
  • 备份所有数据库:mysqldump -u用户名 -p --all --databases > 备份文件路径

还原:

  • mysqldump -u用户名 -p密码 [数据库名] < 备份文件路径 【指定数据库时代表只恢复指定数据库的备份,不指定为恢复备份文件中所有内容】

补充:

  • mysqldump还可以仅仅导出表数据【不过考虑到有select into outfile了,这里就不介绍了】

利用select into outfile:

适用情况:单表数据备份,只能复制表数据,不能复制表结构。

备份:

  • 语法:select *\字段列表  from 数据源 into outfile 备份文件目标路径 [fields 字段处理] [lines 行处理]; 【备份文件目标路径中文件必须不存在】
    • fields 字段处理是可选的,是每个字段的数据如何存储,有以下即可小选项
      • enclosed by:以什么字符来包裹数据,默认是空字符
      • terminated by :以什么字符作为字段数据结尾,默认是\t,退格符
      • escaped by: 特殊符号用什么方法处理,默认是"\\"
      • optionally enclosed by:以什么字符来包裹数据类型为字符串的数据。
      • 语法:
        select * from class into outfile "d:\c1.txt" fields enclosed by '-';
        select * from class into outfile "d:\c1.txt" fields enclosed by '-' optionally enclosed by "'";
    • lines 行处理是可选的
      • starting by :每行以什么开始,默认是空字符串
      • terminated by :每行记录以什么结束,默认是“\n”
      • 语法:
        select * from class into outfile "d:\c.txt" lines starting by 'start:';
        select * from class into outfile "d:\c1.txt" lines starting by 'start:' terminated by ' \n';

注意:在5.7新增了一个特性,secure_file_priv,它会限制数据的导出,secure-file-priv参数是用来限制LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE()传到哪个指定目录的。

image

需要在my.ini中设置image才能正常导出数据。

还原:

  • 语法:load date infile 备份文件路径 into table 表名 [fields 字段处理] [lines 行处理];【要把之前的字段处理和行处理都写下来,不然无法正确区分数据】


其它

  • 备份:
    • 使用mysql命令备份
    • 利用mysqlhotcopy备份
    • 利用backup table
  • 还原:
    • 使用mysqlimport导入数据文件。
    • 使用restore还原
    • 使用source还原

更多关于MySQL相关内容感兴趣的读者可查看本站专题:《MySQL索引操作技巧汇总》、《MySQL常用函数大汇总》、《MySQL日志操作技巧大全》、《MySQL事务操作技巧汇总》、《MySQL存储过程技巧大全》及《MySQL数据库锁相关技巧汇总

希望本文所述对大家MySQL数据库计有所帮助。

相关文章

  • MySQL中crash safe数据完整性机制面试精讲

    MySQL中crash safe数据完整性机制面试精讲

    这篇文章主要为大家介绍了MySQL数据完整性crash safe特性面试精讲,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • MySQL中Bit数据类型的使用方式

    MySQL中Bit数据类型的使用方式

    这篇文章主要介绍了MySQL中Bit数据类型的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • 一文彻底讲清该如何处理mysql的死锁问题

    一文彻底讲清该如何处理mysql的死锁问题

    MySQL中的死锁问题是一个复杂而微妙的议题,尤其是在高并发的业务环境中,死锁可能导致服务的不稳定甚至数据的不一致,下面这篇文章主要介绍了该如何处理mysql的死锁问题的相关资料,需要的朋友可以参考下
    2024-10-10
  • mysql 8.0.15 压缩版安装图文教程

    mysql 8.0.15 压缩版安装图文教程

    这篇文章主要为大家详细介绍了mysql 8.0.15 压缩版安装图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • MySQL中使用自定义变量 编写偷懒的UNION示例

    MySQL中使用自定义变量 编写偷懒的UNION示例

    以下是对MySQL中使用自定义变量,编写一个UNION的示例进行了详细的介绍,需要的朋友可以过来参考下
    2013-07-07
  • mysql中的自连接与join关联

    mysql中的自连接与join关联

    这篇文章主要介绍了mysql中的自连接与join关联,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-09-09
  • mysql获取随机数据的方法

    mysql获取随机数据的方法

    在mysql中获取随机数据方法很简单只要使用order by rand()即可了,但是如果你是百万级数据量,使用order by rand()获取随机数据你会等死去,下面我来介绍具体的解决办法
    2013-11-11
  • MySQL配置文件my.cnf与my.ini的区别

    MySQL配置文件my.cnf与my.ini的区别

    在使用MySQL时,我们需要对其进行配置,以满足我们的需求,本文主要介绍了MySQL配置文件my.cnf与my.ini的区别,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • MySQL中Like模糊查询速度太慢该如何进行优化

    MySQL中Like模糊查询速度太慢该如何进行优化

    在业务场景中经常会用到like模糊查询,但是大家都知道,like是用不到索引的,所以当数据量非常大时,速度会非常慢,这篇文章主要给大家介绍了关于MySQL中Like模糊查询速度太慢该如何进行优化的相关资料,需要的朋友可以参考下
    2021-12-12
  • mysql installer community 8.0.16.0安装配置图文教程

    mysql installer community 8.0.16.0安装配置图文教程

    这篇文章主要为大家详细介绍了mysql installer community 8.0.16.0安装配置图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05

最新评论