• 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 :以什么字符作为字段数据结尾,默认是 ,退格符
        • 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 :每行记录以什么结束,默认是“ ”
        • 语法:
          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 ' 
          ';

    注意:在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还原


  • 相关阅读:
    如何读入位图(五)
    如何读入位图(四)
    绘制正弦曲线
    图像灰度均衡
    色彩填充及使用
    彩色扇形
    如何读入位图(三)
    ARCGIS FOR SILVERLIGHT Layer
    sqlserver2008多数据库操作(未完)
    SQLSERVER 2008 远程无法连接问题
  • 原文地址:https://www.cnblogs.com/progor/p/8883807.html
Copyright © 2020-2023  润新知