mysql中的数据备份与还原

Posted Java_xb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql中的数据备份与还原相关的知识,希望对你有一定的参考价值。

一、有三种备份方式:

  1. 数据表文件备份

  2. 单表数据备份

  3. SQL备份

  4. 增量备份

二、mysql中的存储引擎

  主要有两种:myisam 和 innodb.  -- 免费的

  其他收费的还有:BDB, Memory, Archive

  innodb的存储方式:表结构单独存放,所有数据都存储在ibdata1文件中。

  myisam的存储方式:表、数据和索引全部单独分开存储。

  

二、数据表文件备份与还原

  直接复制数据库目录下的文件夹复制对应的表结构和数据文件,还原的时候直接放回去即可。

  但是此方法根据不同的存储引擎有不同的区别:

  innodb下,因为除了表结构外其他数据都在ibdata1文件中,所以还原到本来的数据库可以,跨数据库时表将不能使用。

  myisam下,因为表、数据和索引全部单独分开存储,所以只需要复制这三个文件,就可以在任意数据库进行还原使用。

三、单表数据备份与还原

  1. 数据备份

    每次只能备份一张表,且只能备份数据,不能备份表结构。通常用于导出数据到文件。

    select */字段列表 into outfile \'文件路径\' [fields 字段处理 lines 行处理] from 数据源;  -- 文件不存在才能导出

    fields字段处理:

      enclosed by: 字段使用什么内容包裹,默认为\'\';

      terminated by: 字段使用什么内容结束,默认为\'\\t\';

      escaped by: 特殊符号用什么方式处理,默认\'\\\\\' 反斜杠转义;

    lines行处理:

      starting by: 每行以什么开始,默认为\'\';

      terminated by: 每行以什么结束,默认为换行符;

    示例:

1 select * into outfile \'D:\\BaiduNetdiskDownload\\mysql\\class.sql\' 
2 fields terminated by \'---\' enclosed by \'"\' 
3 lines starting by \'be:\' terminated by \'ed\\r\\n\'
4 from my_class;

  2. 数据还原

    必须保证表结构存在,才能进行数据还原。

    lode data infile \'文件路径\' into table 表名 fields 字段处理 lines 行处理;  -- 怎么备份的,就怎么还原

    示例:

1 load data infile \'D:\\BaiduNetdiskDownload\\mysql\\class.sql\' into table my_class
2 fields terminated by \'---\' enclosed by \'"\' 
3 lines starting by \'be:\' terminated by \'ed\\r\\n\';

三、 SQL备份

  1.数据备份

     备份的是SQL语句,需要使用mysql提供的mysqldump.exe软件。

     mysqldump/mysqldump.exe -hPup 数据库名 [表名1[,表名2...]] > 外部文件路径  -- 可以多表备份, 如果不写表名,表示整库备份

 mysqldump -uroot -p jdbc my_student > D:\\BaiduNetdiskDownload\\mysql\\student.sql -- 单表备份
 
 mysqldump -uroot -p jdbc> D:\\BaiduNetdiskDownload\\mysql\\jdbc.sql -- 整库备份

  2. 数据还原

    ① 使用mysql客户端还原:

    mysql.ext/mysql -hPup 数据库名< 备份文件路径

    

mysql -uroot -p jdbc < D:\\BaiduNetdiskDownload\\mysql\\student.sql

 

    ②使用SQL指令还原:

    source 备份文件路径;

source D:\\BaiduNetdiskDownload\\mysql\\student.sql;

 

四、增量备份

  此方式针对mysql服务器的日志文件进行备份,可以指定时间段进行备份,因此备份数据不会重复,并且中间的操作过程也会备份。

以上是关于mysql中的数据备份与还原的主要内容,如果未能解决你的问题,请参考以下文章

转 MySQL 数据备份与还原

mysql逻辑备份与还原工具mysqldump

MySQL 数据备份与还原

MySQL 数据备份与还原

mysql-数据备份与还原

MySQL 数据备份与还原